僅由乙個結構體組成,定義及實現如下所示:
struct order_list
typedef
struct order_list* list;
//指向該結構體的指標
//初始化
list initial()
//查詢元素x的下標
intfind
(list l,elementtype x)
//在位置p前插入元素x
bool insert
(list l,elementtype x,
int p)
//刪除座標為p處的元素x
bool delete
(list l,
int p)
綜上可知:
順序表是定長的,一旦定義,無法改變長度;
做刪除,插入操作時,需要大量移位工作,效率低;
查詢元素x的時間複雜度與順序表相同—o(n
)o(n)
o(n)
;做刪除,插入操作時,效率高,時間複雜度為o(1
)o(1)
o(1)
,順序表則為o(n
)o(n)
o(n)
;但在以下操作中,需要判斷在哪個位置刪除和插入,故為o(n
)o(n)
o(n)
;鏈式表由不限數個結構體和乙個頭指標組成,因而長度可變,不受限,其定義及實現如下所示:
typedef
struct chain_list* ptr;
struct chain_list
//初始化
ptr initial()
//查詢元素x
ptr find
(ptr head,elementtype x)
//在位置p前插入元素x
bool insert
(ptr head,ptr p,elementtype x)
//以上不能在第乙個節點前新增,故增加如下判斷:
if(p==head)
}//刪除位置為p處的節點
bool delete
(ptr head,ptr p)
//以上不能刪除第乙個節點,故增加如下判斷:
if(p==head)
}
線性表的實現
線性表 liner list 線性表的順序儲存及操作實現 所謂順序儲存就是把線性表的各元素依次順序地存放倒計算機記憶體中的一組位址連續的儲存單元。採用順序儲存的線性表又叫順序表。順序表是一種隨機訪問的儲存結構。順序表的操作實現 define maxlen 100 tpyedef struct lis...
線性表的實現
個人覺得比較難的幾個地方是 1.指標的使用.你會突然發現c學的簡單的指標不夠用了,需要學更多的關於指標的東西 2.關於陣列角標的計算.這種東西拿特殊情況帶一下就能算出來啦.下面還是po出我的 供大家交流學習 title array function practice 1 date 2016 9 29...
線性表的實現
線性表的定義,初始化,插入和刪除及列印輸出 include include include 線性表儲存空間的初始分配量 define list init size 100 線性表的儲存空間的分配增量 define list increment 10 typedef structsqlist 對於線性...