順序表的查詢 插入 刪除 合併操作及其優缺點

2021-07-12 04:21:17 字數 911 閱讀 8658

#include

using namespace std;

//定義線性表順序儲存結構

#define maxsize 100  //線性表最大長度

typedef struct

}seqlist;

//順序表的按內容查詢運算

//在順序表l中查詢與e相等的元素,若l.elem[i]=e,則找到該元素,並返回i+1,若找不到,則返回-1

int  locate(seqlist l, int e)

//順序表的插入運算

#define ok 1

#define error 0

//在順序表l中第i個資料元素之前插入乙個元素e,n個元素有n+1個插入位置,1<=i<=l->last + 2

int inslist(seqlist *l, int i, int e)

//順序表的刪除運算

//在順序表l中刪除第i個資料元素,並用指標引數e返回其值,1<=i<=l->last + 1

int dellist(seqlist *l, int i, int *e)

int main()

例:有兩個順序表la,lb,其元素均為非遞減有序排列,編寫演算法將它們合併成乙個順序表lc,要求lc也是非遞減有序排列。

解:演算法如下:

//線性表的合併運算

void mergelist(seqlist *la, seqlist *lb, seqlist *lc)

順序表的優點:1.無須為表示結點間的邏輯關係而增加額外的儲存空間; 

2.可方便隨機訪問表中任一元素。

缺點:1.插入或刪除運算不方便;

2.由於順序表要占用連續的儲存空間,儲存分配只能預先進行靜態分配,當表長變化較大時,難以確定合適的儲存規模。

本文出自 「巖梟」 部落格,請務必保留此出處

順序表的查詢 刪除 插入

遇到的問題 malloc realloc的用法 realloc 型別 realloc 原來的記憶體位址,新的大小 型別 指標的問題 要深刻理解指標,指標也是乙個變數,在函式傳遞引數的過程中,作為引數來講,傳遞的也是值。這個值就是指標本身的內容,即指標指向的位址。而 不是傳的指標。所以指標作為函式形參...

順序表建立插入刪除操作及實現

學資料結構時在實現順序表建立插入刪除操作中,書中提供了偽 但是用c實現時在建立相應函式時,不能用 呼叫表的另乙個名字。所以應該這樣實現 include include define list init size 100 define listincrement 10 typedef struct 結...

C語言 順序表的插入 刪除 查詢操作

順序表的操作,這裡先引入標頭檔案 include define maxsize 100 typedef int datatype typedef structsqlist 初始化順序表 只需要讓length 0即可 void initsqlist sqlist l 輸入順序表 這裡讀到0就結束 vo...