312 鏈式訪問之單鏈表

2021-09-12 12:49:48 字數 1306 閱讀 9580

鏈式訪問之單鏈表

單鏈表(線性鍊錶)

單鏈表是一種鏈式訪問的資料結構,

用一組位址任意的儲存單元存放線性表中的資料元素

鍊錶中的資料是以結點來表示的,

每個結點的構成是:

1.元素(資料元素的映像)

2.指標(指示後繼元素儲存位置)

元素就是儲存資料的儲存單元

指標就是連線每個結點的位址資料

鏈結儲存方法

鏈結方式儲存的線性表簡稱為鍊錶(linked list)

鍊錶的具體儲存表示為

1.用一組任意的儲存單元來存放線性表的結點(這組儲存單元可以是連續的,也可以是不連續的)

2.鍊錶中結點的邏輯順序和物理順序不一定相同,

為了表示結點之間的邏輯關係

在儲存每個結點值得同時

還要儲存指示其後繼結點的位址和資訊

鏈式儲存是最常用的儲存方式之一

不僅可以用來表示線性表,還可以用來表示各種非線性的資料結構

結點結構

data-next

data域: 存放結點值的資料域

next域: 存放結點的直接後繼的位址的指標域

鍊錶通過每個結點的域把線性表的n個結點按照邏輯順序連線在一起

每個結點只有乙個鏈域的鍊錶稱為單鏈表

頭指標head和終端結點

單鏈表中的每個結點的儲存位址是存放在前面的那個結點的next域中

但是最開始的那個結點是沒有前面的結點的,

所以有乙個頭指標head來指向初始的結點

鍊錶由頭指標唯一確定,單鏈表可以用頭指標的名字來命名

終端結點也就是末尾結點

是沒有後繼結點的,所以終端結點的指標域為空

單鏈表的建立

1.頭插法

單鏈表是使用者不斷申請儲存單元和改變鍊錶關係 而得到的一種資料結構

鍊錶的左邊稱為鏈頭,右邊稱為鏈尾

頭插法建立單鏈表是將鍊錶的右邊看成固定的,

鍊錶不斷向左延伸而得到的,頭插法最先得到的是尾結點

由於鍊錶的長度是隨機的,所以用乙個while迴圈來控制鍊錶中的結點個數.

鍊錶建立的過程是申請空間,得到資料,建立鏈結的迴圈處理過程

2.尾插法

如果將鍊錶的左端固定,鍊錶不斷向右延伸,

這種建立鍊錶的方法稱為尾插法

尾插法建立鍊錶的時候,頭指標固定不動

所以必須設立乙個搜尋指標,向鍊錶右邊延伸

這樣的話整個演算法應該設立三個鍊錶指標

1.頭指標head

2.搜尋指標

3.申請單元指標

尾插法最先得到的是頭結點

線性表 鏈式儲存結構之單鏈表

ifndef linklist h define linklist h include include include template class node node const elemtype data data data next null node const elemtype data,...

單鏈表的建立(鏈式儲存)

資料結構程式設計練習 二 功能1 在建構函式完成帶頭結點單鏈表的初始化。功能2 輸入資料,利用尾插法完成鍊錶生成。功能3 求單鏈表表長。功能5 在第i個結點前插入值為x的結點。功能6 刪除鍊錶中第i個元素結點,需返回第i個結點是否存在的狀態,並返回刪除結點中儲存的資料。功能7 在析構函式中完成鍊錶記...

單鏈表實現佇列鏈式儲存

用單鏈表實現佇列的鏈式儲存 fron指向單鏈表的頭結點,rear指向單鏈表的尾結點 因為單鏈表的頭結點做插入,刪除都比較方便,但是尾結點做插入方便,刪除不方便 故我們讓front指向頭結點利於做刪除操作,讓rear指向尾結點利於做插入操作 include include define element...