線性表的兩種儲存方式 順序儲存和鏈式儲存

2021-10-09 07:47:07 字數 2059 閱讀 9974

線性表是一種儲存方式,可以想象是很多個車廂連起來的火車。每個車廂有兩個區域,乙個存放資料乙個鏈結下一節車廂。

線性表的一些基本操作。初始化,增加元素,刪除元素,查詢元素,輸出表中元素。

鏈式儲存

例如鍊錶一樣通過指標把不同區域的資料聯絡起來形成順序儲存。

#include

#include

typedef

struct node *list;

//node重新命名為指標*list

struct node

;//提前宣告函式

list findlist

(int a,list head)

;//查詢函式

void

delelist

(int a,list head)

;//刪除函式

void

insert

(int a,

int x,list head)

;//增加函式

void

printflist

(list head)

;//輸出函式

list initlist()

//初始化函式

list findlist

(int a,list head)

//查詢函式,在以head為頭節點的表中查詢資料a,

else

}printf

("表中沒有這個元素!\n");

return

null;}

void

delelist

(int a,list head)

//刪除元素a

else

}printf

("表中沒有這個元素!\n");

return;}

void

insert

(int a,

int x,list head)

else

else}}

printf

("未插入該元素!\n");

}void

printflist

(list head)

printf

("\n");

}int

main()

順序儲存

像陣列一樣

#include

#include

struct node

;typedef

struct node *list;

void

delelist

(int a,list node)

;void

insert

(int a,

int x,list node)

;void

printflist

(list node)

;list initlist()

intfindlist

(int a,list node)

i++;}

printf

("表中沒有%d這個數!"

,a);

return-1

;}void

delelist

(int a,list node)

i++;}

while

(i+1

<=node->last)

node->last--

;printf

("%d被刪除成功\n刪除後數列:"

,a);

printflist

(node);}

void

insert

(int a,

int x,list node)

node->data[x-1]

=a; node->last++;}

void

printflist

(list node)

while

(i<=node->last)

}int

main()

順序儲存方式儲存線性表

include 標頭檔案 include define list init size 100 定義儲存容量 define listincremnet 10 擴充套件儲存容量 define overflow 0 允許溢位為0 定義順序表的結構 typedef struct listonde 自定義順序...

線性表的順序儲存 線性表的順序儲存結構

1,本文實現乙個線性表 2,順序儲存定義 1,線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表中的資料元素 2,在 c 中可以用乙個陣列作為介質來儲存資料元素 3,設計思路 1,可以用一維陣列實現順序儲存結構 1,儲存空間 t m array 2,當前長度 int m length...

線性表順序儲存和鏈式儲存

輸入第1行是乙個整數n,表示之後還有n行輸入。每行輸入表示對線性表的一條操作指令,格式是 指令編號 引數1 引數2 如有 指令編號為3,表示find操作,此時只有乙個引數,即待查元素的值。順序儲存 include using namespace std const int maxn 1e4 1 st...