1. 程式人生 > >(1)順序表的操作 ① 輸入一組整型元素序列,建立線性表的順序儲存結構。 ② 實現該線性表的遍歷。 ③ 在該順序表中查詢某一元素,查詢成功顯示查詢元素,否則顯示查詢失敗。 ④ 在該順序表中刪除或插入指

(1)順序表的操作 ① 輸入一組整型元素序列,建立線性表的順序儲存結構。 ② 實現該線性表的遍歷。 ③ 在該順序表中查詢某一元素,查詢成功顯示查詢元素,否則顯示查詢失敗。 ④ 在該順序表中刪除或插入指

(1)順序表的操作

① 輸入一組整型元素序列,建立線性表的順序儲存結構。

② 實現該線性表的遍歷。

③ 在該順序表中查詢某一元素,查詢成功顯示查詢元素,否則顯示查詢失敗。

④ 在該順序表中刪除或插入指定元素。

⑤ 建立兩個按值遞增有序的順序表,將他們合併成一個按值遞增有序的順序表。

#include<stdio.h>

#include<stdlib.h>

#define SIZE 20

#define MORE 10

typedef struct{

int *base; //儲存空間基址

int length; //當前長度

int listsize; //當前儲存容量 

}SqList;

void InitList(SqList &L){

//構造線性表

L.base=(int *)malloc(SIZE*sizeof(int));

if(!L.base) 

exit(0);

L.listsize=SIZE;

scanf("%d",&L.length);

for(int i=0;i<L.length;i++)

scanf("%d",&L.base[i]);

void Output(SqList L){

//遍歷 

for(int i=0;i<L.length;i++)

printf("%5d",L.base[i]); 

printf("\n");

void Locate(SqList L,int &e){

//查詢 

int i;

for(i=0;i<=L.length;i++){

if(L.base[i]==e){

printf("%d\n",L.base[i]);

break;

}

if(i>L.length)

printf("查詢失敗!");

}

void Delete(SqList &L,int i,int &e){

//刪除第i個元素

int j;

if(i<1||i>L.length)   exit(0);

e=L.base[i-1];

for(j=i-1;j<L.length;j++){

L.base[j]=L.base[j+1];

}

L.length--;

}

void Insert(SqList &L,int i,int e){

//插入

SqList q,p;

int j;

if(i<1||i>L.length+1)

exit(0);

if(L.length>=L.listsize){

int *newbase=(int *)realloc(L.base,(L.listsize+MORE)*sizeof(int));

if(!newbase)  exit(0);

L.base=newbase;

L.listsize+=MORE;

}

for(j=L.length-1;j>=i-1;j--){

L.base[j+1]=L.base[j];

}

L.base[i-1]=e;

L.length++;

}

void Merge(SqList La,SqList Lb,SqList &Lc){

//合併 

Lc.length=La.length+Lb.length;

Lc.base=(int *)malloc(Lc.listsize*sizeof(int));

int i,j,k;

i=0;j=0;k=0;

while(i<La.length&&j<Lb.length){

if(La.base[i]<=Lb.base[j]){

Lc.base[k++]=La.base[i++];

}

else

Lc.base[k++]=Lb.base[j++];

}

while(i<La.length){

Lc.base[k++]=La.base[i++];

}

while(j<Lb.length){

Lc.base[k++]=Lb.base[j++];

}

}

int main(){

SqList La,Lb,Lc;

int d,k,e;

printf("輸入表的長度:"); 

InitList(La);

printf("輸入要查詢的數:");

scanf("%d",&d) ;

Locate(La,d);

printf("要刪除第幾個數?");

scanf("%d",&k);

Delete(La,k,e);

printf("刪除的數為:%d\n",e); 

Output(La);

int a,b;

printf("輸入要插入的位置和數:");

scanf("%d%d",&a,&b);

Insert(La,a,b);

Output(La);

printf("輸入另一個表的長度:");

InitList(Lb);

Merge(La,Lb,Lc);

Output(Lc);

return 0;

相關推薦

(1)順序表操作輸入一組整型元素序列,建立線性表順序儲存結構。實現該線性表遍歷。 ③ 在該順序表中查詢某一元素,查詢成功顯示查詢元素,否則顯示查詢失敗 ④ 在該順序表中刪除或插入指

(1)順序表的操作 ① 輸入一組整型元素序列,建立線性表的順序儲存結構。 ② 實現該線性表的遍歷。 ③ 在該順序表中查詢某一元素,查詢成功顯示查詢元素,否則顯示查詢失敗。 ④ 在該順序表中刪除或插入指定元素。 ⑤ 建立兩個按值遞增有序的順序表,將他們合併成一個按值遞增有序的

git操作總結1:常用操作流程之SSH、上傳、下載和改名字

一、配置SSH免金鑰登陸 1.生成金鑰 直接回車3-5次 ssh-keygen -t rsa -C "這裡換上你的郵箱" 2.在指定的儲存路徑下會生成2個名為id_rsa和id_rsa.pub的檔案 3.將id_rsa.pub檔案,把內容拷貝到Git的SSH金鑰配置上 4.g

Android元件系列1:自動完成輸入內容的元件AutoCompleteTextView

本文為原創,如需轉載,請註明作者和出處,謝謝!     AutoCompleteTextView 和 EditText 元件類似,都可以輸入文字。但 AutoCompleteText

com4j學習1:Java操作Visio之Java讀取Visio圖形關係並存儲到XML檔案

前言: MicroSoft Visio是微軟旗下一款非常非常出色的繪圖軟體,可以用來繪製各種各樣的圖形(如流程圖、UML、工程圖等)。現在有這樣一個需求,我們想讀取visio中的圖形的形狀、屬性、連線關係等到程式中(java、c++、python都行),這樣我

Python3快速入門——1python變數和輸入輸出函式

1、Python語言Python 是一種解釋型、面向物件、動態資料型別的高階程式設計語言Python 是一種解釋型語言: 這意味著開發過程中沒有了編譯這個環節。類似於PHP和Perl語言。Python

java演算法知識點解析1:字串操作

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; public class main {       static

OpenCV計算機視覺學習1——影象基本操作影象視訊讀取ROI區域擷取常用cv函式解釋

1,計算機眼中的影象   我們開啟經典的 Lena圖片,看看計算機是如何看待圖片的:    我們點選圖中的一個小格子,發現計算機會將其分為R,G,B三種通道。每個通道分別由一堆0~256之間的數字組成,那OpenCV如何讀取,處理圖片呢,我們下面詳細學習。 2,影象的載入,顯示和儲存   我們看

平日小演算法筆記 1 字首和求遞增三元

2018.4.3 遇到一個很有意思的題目 題目:遞增三元組 給定三個整數陣列  A = [A1, A2, … AN],  B = [B1, B2, … BN],  C = [C1, C2, … CN],  請你統計有多少個三元組(i, j, k) 滿足:  1. 1 &l

js去掉陣列重複的值

<script>     var data = [1,1,2,2,3,4,4,5,6,7,7,8];     var length = data.length;     var datas = [];    

Python學習筆記6 -- 字元轉數字、字串轉char2num、str2int

原文連結: http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014317852443934a86aa5bb5ea47fbbd5f35282b3313350

資料結構實驗1順序線性的各種操作SqList

#include<iostream> #include<malloc.h> #include<cstdio> #define MAXSIZE 10 using namespace std; //typedef struct SqList

十二Hibernate的多操作1:單向多對

art 保存 int gen round t對象 情況 映射文件 拋出異常 由“多”方可知“一”方的信息,比如多個員工使用同一棟公寓,員工可以知道公寓的信息,而公寓無法知道員工的信息。 案例一: pojo類 public class Department {

Spring boot集成Redis1—進行增加更新查詢批量刪除操作

緩存 獲取數據 prope XML ray end 序列 www pin 前言:最近工作中使用到了redis緩存,故分享一點自己總結的東西,這篇文章使用的是StringRedisTemplate進行學習,這裏值的說的是,(1)StringRedisTemplate在進行批量

編寫程式非遞減的順序L刪除所有值相等的多餘元素要求時間複雜度On空間複雜度為O1

翠花上程式碼: Status delExcrescentValue(SeqList &S){ int flag = 0,val = S.elem[0];//記錄值不等的下標 //printf("%d\n",S.elem[0]); for(int i = 1;i

Oracle資料庫當前時間轉為星期的語句和查詢欄位轉為星期顯示種方法

1、當前時間的星期 select to_char(sysdate,'day') from  dual  ;   2、指定欄位的星期 select decode (substr(to_char(t.欄位,'d','NLS_DATE_LANGUAGE

給出n個學生的考試成績每條記錄由學號、姓名和分數和名次組成設計演算法完成下列操作1設計一個顯示對學生資訊操作的選單函式如下所示: *************************

給出n個學生的考試成績表,每條記錄由學號、姓名和分數和名次組成,設計演算法完成下列操作: (1)設計一個顯示對學生資訊操作的選單函式如下所示: *************************        1、錄

資料結構1順序查詢之C語言實現

#include <stdio.h> #include <stdlib.h> /** 順序查詢: 無序; */ void mainSS() { int num[]={0,1,2,38,99,56,67,87,55,26}; int f

經典筆試題練習之陣列查詢1第一個重複元素

《劍指OFFER名題精講2版》P39 題目侷限性: 輸入陣列的長度0-200,陣列內每個元素都在0-200之間。 解決思路: 使陣列的值與陣列下標一一對應。 書中原始碼: #include<stdio.h> #include<stdlib.h

查詢陣列重複的唯一元素+時間複雜度On+空間複雜度O1

這是我BIGO前端面試時,面試官給我出的一道題,題目是長度為N的陣列,元素大小範圍在[1,N-1],只有一個重複的元素,用O(n)的時間複雜度和O(1)的空間複雜度找出來這個重複的元素, 大致思路 1、因為總共有N個數,每個數的範圍是1到N-1,只有一個重複的數,所以這些數肯定是連續的           2

使用PyMongo操作MongoDB的基本實踐1——刪除查詢更新

db.drop_collection("collection_name") 刪除整個collection import pymongo client = pymongo.MongoClient