2023年3月26日 12:41
slyar
本來不想發這麼水的**,可是最近也沒什麼好寫的...純當湊文章數目吧...
這是乙個線性表操作的小玩具,此篇為鍊錶版本,也就是用指標和動態記憶體分配的。
1234567
891011
1213
1415
1617
1819
2021
2223
2425
2627
2829
3031
3233
3435
3637
3839
4041
4243
4445
4647
4849
5051
5253
5455
5657
5859
6061
6263
6465
6667
6869
7071
7273
7475
7677
7879
8081
8283
8485
8687
8889
9091
9293
9495
9697
9899
100101
102103
104105
106107
108109
110111
112113
114115
116117
118119
120121
122123
124125
126127
128129
130131
132133
134135
136137
138139
140141
142143
144145
146147
148149
150151
152153
154155
156157
158159
160161
162163
164165
166167
168169
170171
172173
174175
176177
178179
180181
182183
184185
186187
188189
190191
192193
194195
196197
198199
200201
202203
204205
206207
208209
210211
212213
214215
216217
218219
220221
222223
224225
226227
228229
230231
232233
234235
236237
238239
240241
242243
244245
246247
248249
250251
252253
254255
256257
258259
260261
262263
264265
266267
268269
270271
272273
274275
276277
278279
280281
282283
284285
286287
288289
290291
292293
294295
296297
298299
300301
302303
304305
306307
308309
310311
312313
314315
316317
318319
320321
322323
324325
326327
328329
330331
/*線性鍊錶操作
/* 定義鍊錶節點型別 */
typedef
struct node
linklist;
/* 函式宣告部分 */
linklist* get(linklist*,
int)
;linklist* createlist();
void freelist(linklist*);
void output(linklist*);
int)
;void insertnode(linklist*,
int,
int)
;void readnode(linklist*,
int)
;void searchfromlist(linklist*,
int)
;void deletenode(linklist*,
int)
;void updatenode(linklist*,
int,
int)
;void listlist(linklist*);
/* 主函式 */
int main(
)else
if(ch ==
'i')
else
if(ch ==
'd')
else
if(ch ==
'r')
else
if(ch ==
'u')
else
if(ch ==
's')
else
if(ch ==
'e')
} system(
"pause");
return0;
}/* 列印說明文件 */
void output(linklist *list)
/* 建立線性鍊錶 */
linklist* createlist(
)else
return head;
}/* 列印線性鍊錶 */
void listlist(linklist* head)
else
printf
("/n");
}}/* 讀取節點 */
void readnode(linklist* head,
int pos)
if(pos == j)
else
system(
"pause");
}/* 查詢節點 */
void searchfromlist(linklist* head,
int n)
i++;
p = p -> next;}if
(!sign)
system(
"pause");
}/* 追加節點 */
int n)
s =(linklist*
) malloc(
sizeof
(linklist));
if(s ==
null
)else
}/* 得到節點位置 */
linklist* get(linklist* head,
int i)
if(i == j)
else
}/* 插入節點 */
void insertnode(linklist* list,
int n,
int pos)
else
else}}
/* 刪除節點 */
void deletenode(linklist* head,
int pos)
else
}/* 編輯節點 */
void updatenode(linklist *head,
int n,
int pos)
else
}/* 釋放鍊錶 */
void freelist(linklist* p)
free(p)
;}
C語言,線性表 順序表 鍊錶
c語言資料結構中兩個常見的線性表,用來儲存資料等 一 建立順序表 定義 將線性表中的元素相繼存放在乙個連續的儲存空間中。可利用一維陣列描述儲存結構 特點 線性表的順序儲存方式 遍歷 順序訪問,可以隨機訪問 順序表 include define maxsize 100 定義陣列長度 define ok...
線性表之鍊錶
鏈式的線性表適用於經常進行刪除,插入操作的工作,如 訂票系統。鍊錶是用乙個乙個的節點連線起來的表,在物理上不是連續的,在邏輯上是連續的。通過節點間的指標指向來表示節點間的關係。所以在進行鍊錶操作之前,要先定義乙個節點結構。節點結構包含兩個東西 資料域,指標域。資料域就是用來存放資料的,指標域是用來表...
線性表之鍊錶
1,為什麼要使用鍊錶 1,順序表的長度是固定的,如果超出分配的長度就會造成溢位,如果存放的資料太少則會造成空間浪費。2,在插入元素和刪除元素時 尤其不在尾部時 會移動大量的元素,造成效能和效率低下。基於以上問題,使用鍊錶可以很好地避免順序表中出現的問題。這也是我們要使用鍊錶的原因。2,鍊錶的儲存結構...