順序表 C語言

2021-10-05 19:00:12 字數 2846 閱讀 8153

順序表示

採用順序儲存是表示線性表最簡單的方法

儲存結構

線性表的首位址基位址

-順序表中k0的儲存位置 loc(k0)

順序表的實現

以陣列為基礎實現線性表

考慮到線性表元素的變化,建立乙個大陣列,表示元素連續存在陣列前一段

順序表的儲存示意圖

演算法分析與評價

可以看出,在順序表中進行一次插入刪除操作,平均需要移動大約一半的元素

順序表插入刪除操作的平均時間代價最壞時間代價都是o(n);

#include

#include

typedef

int datatype;

struct seqlist

;typedef

struct seqlist * pseqlist;

//建立空順序表

pseqlist createnulllist_seq

(int m)

else

}printf

("out of space.\n");

// 儲存分配失敗

return

null;}

// 判斷線性表是否為空

// 若為空返回1,否則返回0

intisnull_seq

(pseqlist palist)

// 查詢順序表中某元素的下標

intlocate_seq

(pseqlist palist, datatype x)

return-1

;}// 順序表插入 指定下標 p 的後面

// p:下標 x: 插入的值

intinsertpre_seq

(pseqlist palist,

int p, datatype x)

// 下標 p 不存在判斷

if(p<

0|| p>palist->n)

for(q = palist->n-

1;q>=p;q--

) palist -> element[q+1]

= palist ->element[q]

; palist->element[p]

= x;

palist->n = palist->n+1;

return1;

}// 順序表插入 指定下標p的後面

// p:下標 x: 插入的值

intinsertpost_seq

(pseqlist palist,

int p, datatype x)

// 判斷下標p是否存在

if(p<

0|| p>palist->n)

for(q=palist->n-

1;q>p;q--

) palist->element[q+1]

=palist->element[q]

; palist->element[p+1]

= x;

palist->n = palist->n+1;

return1;

}// 刪除指定下標的元素

intdeletep_seq

(pseqlist palist,

int p)

for(q=p;qn-

1;q++

) palist->element[q]

= palist->element[q+1]

;// 刪除元素之後的元素均向前移乙個位置

palist->n = palist->n-1;

// 元素個數減一

return1;

}// 輸出順序表內容

void

print_seq

(pseqlist palist)

}int

main()

//插入資料

insertpre_seq

(plist,0,

2);insertpre_seq

(plist,0,

666)

;insertpre_seq

(plist,1,

123)

;insertpost_seq

(plist,0,

520)

;insertpost_seq

(plist,2,

1314);

// 輸出順序表

print_seq

(plist)

;// 列印指定值的下標

printf

("520的下標為:%d\n"

,locate_seq

(plist,

520));

// 刪除下標為3的值

deletep_seq

(plist,3)

;// 輸出順序表

print_seq

(plist)

;return0;

}

C語言 順序表

順序表的初始化,插入,刪除,列印 include include define initsize 100 線性表能達到的最大長度 define bool int define true 1 define false 0 typedef int datatype elemtype表示線性表中元素的型別...

C語言 順序表

typedef maxsize 100 typedef int elemtype typedef struct seqlist 順序表長度 最後乙個元素序號 l.last 1 順序表中序號為i ii的元素a ia i ai l.elem i 1 位置 下標為i ii 0 1 2 3 4 5 6 序號...

C語言順序表

結構體宣告 typedef struct listablelistable 順序表的建立 建立順序表函式 listable establash lt.length 0 順序表內邊元素占用的長度 lt.size size 順序表的長度 return lt 案例 include include defi...