C語言 陣列與鍊錶的使用

2021-10-23 04:16:30 字數 412 閱讀 2852

一、陣列與鍊錶的特點

1、陣列占用的記憶體空間是連續有序的,鍊錶占用的記憶體空間是分散無序的

二、陣列與鍊錶的訪問

陣列和鍊錶都是按位址訪問的,但是陣列的位址是連續的,在已知陣列起始位址和大小的情況下,陣列可以直接按(位址±n)直接訪問當前位址的後第n個數或前n個數。

鍊錶不能再當前位址±n,應為他的儲存空間是不連續的,他只能通過內部的next或prev指標一步一步的找前n個或後n個

三、為什麼有些情況要使用陣列,有些情況要使用鍊錶

當乙個物件集合的大小不會發生改變(刪減或新增物件),使用陣列訪問速度更快

當乙個物件集合的大小經常發生改變(刪減或新增物件),使用鍊錶儲存可以有效避免因增減成員所引起的物件移動

C語言 使用陣列與鍊錶實現無儲存上限的雜湊表

include include define hashsize 12 set hash p define nullkey 1000000 set a impossible key 如果雜湊表中有相同值,該演算法找不到第二個該值,需要優化find函式 typedef struct ltableltab...

C 陣列與鍊錶的區別

陣列與鍊錶的區別 1.基於空間的考慮 陣列的儲存空間是靜態,連續分布的,估計過大造成空間浪費,估計太小又將使空間溢位機會增多。而鍊錶的儲存空間是動態分布的,只要記憶體空間尚有空閒,就不會產生溢位 鍊錶中每個節點除了資料域外,還有指標域,儲存密度小於1 陣列為 儲存空間利用率就越高。2.基於時間的考慮...

c語言 鍊錶 C語言鍊錶例項 玩轉鍊錶

下圖為最一簡單鍊錶的示意圖 第 0 個結點稱為頭結點,它存放有第乙個結點的首位址,它沒有資料,只是乙個指標變數。以下的每個結點都分為兩個域,乙個是資料域,存放各種實際的資料,如學號 num,姓名 name,性別 和成績 score 等。另乙個域為指標域,存放下一結點的首位址。鍊錶中的每乙個結點都是同...