C語言資料結構(單鏈表)

2021-10-24 17:05:02 字數 1990 閱讀 8924

單鏈表的整表建立

——對於順序儲存結構的線性表的整表建立,我們可以用陣列的初始化來直觀理解。

——而單鏈表和順序儲存結構就不一樣了,它不像順序儲存結構這麼集中,他的資料可以是分散在記憶體各個角落的,他的增長也是動態的。

——對於每個單鏈表來說,他所占用空間的大小和位置是不需要預先分配劃定的,可以根據系統的情況和實際的需求即時生成。

——建立單鏈表的過程是乙個動態生成鍊錶的過程,從「空表」的初始狀態起,依次創立各元素結點並逐個插入鍊錶。

單鏈表建立的演算法思路如下:

——宣告乙個結點p和計數器變數i;

——初始化乙個空鍊錶l;

——讓l的頭結點的指標指向null,即建立乙個帶頭結點的單鏈表;

——迴圈實現後繼結點的賦值和插入。

頭插法建立單鏈表

——頭插法從乙個空表開始,生成新結點,讀取資料存放到新節點的資料域中,然後將新結點插入到當前鍊錶的表頭上,直到結束為止。

簡單來說,就是把新加進的元素放在表頭後的第乙個位置;

先讓新結點的next指向頭結點之後;

然後讓表頭的next指向新結點。

上面便是用頭插法建立鍊錶的**!!

尾插法建立單鏈表

上面便是用尾插法建立鍊錶的**!!

單鏈表的整表刪除:

單鏈表整表刪除的思路如下:

——宣告結點p和q;

——將第乙個結點賦值給p,下乙個結點賦值給q;

——迴圈執行釋放p和將q賦值給p的操作。

**如下:

單鏈表結構與順序儲存結構優缺點

儲存分配方式、時間效能、空間效能三方面作對比。

儲存分配方式:

——順序儲存結構用一段連續的儲存單元依次儲存線性表的資料元素。

——單鏈表採用鏈式儲存結構,用一組任意的儲存單元存放線性表的元素。

時間效能:

——查詢

1.順序儲存結構o(1)

2.單鏈表o(n)

——插入和刪除

1.順序儲存結構需要平均移動表長一半的元素,時間為o(n)

2.單鏈表在九三出某位置的指標後,插入和刪除時間僅為o(1)

空間效能:

——順序儲存結構需要預分配儲存空間,分大了,容易造成空間浪費,分小了,容易發生溢位。

——單鏈表不需要分配儲存空間,只要有就可以分配,元素個數也不受限制。

明天開始學習靜態鍊錶!

c語言 資料結構 單鏈表

將線性表l a0,a1,an 1 中各元素分布在儲存器的不同儲存塊,稱為結點,通過位址或指標建立它們之間的聯絡,所得到的儲存結構為鍊錶結構,表中 ai的結點形式如圖表示 其中結點的data 域存放資料元素 ai,而 next 域是乙個指標,指向 ai的直接後繼 ai 1 所在的結點。單鏈表結構如下 ...

資料結構 單鏈表 C語言

單向鍊錶 鍊錶結點通常包含資料域與指標域,資料域用來儲存相關的使用者的資料,指標域用來指向下乙個結點。訪問單向鍊錶,需要從頭部 head 開始單向順序訪問,訪問終結於指標域 next 為null的結點 其儲存方式不同於以往的陣列,按照非連續位址方式儲存。優點 鍊錶長度可以實現動態增長,不必像陣列一樣...

C語言資料結構 單鏈表

單鏈表在資料結構裡十分常見,是一種常見的線性表,下面介紹其性質並用 實現相關功能 單鏈表以鏈結方式儲存資料 1 鍊錶的具體儲存表示為 用一組任意的儲存單元來存放線性表的結點 這組儲存單元既可以是連續的,也可以是不連續的 鍊錶中結點的邏輯次序和物理次序不一定相同。為了能正確表示結點間的邏輯關係,在儲存...