順序表示
採用順序儲存是表示線性表最簡單的方法
儲存結構
線性表的首位址或基位址
-順序表中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...