順序存儲結構線性表的最大問題
插入和刪除須要移動大量的元素!node
- 爲了表示每一個元素與其直接後繼元素之間的邏輯關係;數據元素除了存儲自己的信息外,還要存儲其直接後繼的信息。
ai
和 ai+1
是線性表中的兩個相鄰數據元素;在物理內存中無相鄰關係。spa
基於鏈式存儲結構的線性表中,每一個節點都包含數據域和指針域3d
- 數據域:存儲數據元素自己
- 指針域:存儲相鄰節點的地址
順序表指針
- 基於順序存儲結構的線性表
鏈表code
基於鏈式存儲結構的線性表blog
- 單鏈表:每一個節點只包含直接後繼的地址信息
- 循環鏈表:單鏈表中的最後一個節點的直接後繼爲第一個節點
- 雙線鏈表:單鏈表中的節點包含直接前驅和後繼的地址信息
單鏈表
循環鏈表
雙線鏈表
頭節點內存
- 鏈表中的輔助節點,包含指向第一個數據元素的指針
數據節點it
- 鏈表中表明數據元素的節點,表現形式爲:[數據元素 | 地址]
尾節點class
- 鏈表中的最後一個數據節點,包含的地址信息爲空
頭節點在單鏈表的意義:
輔助數據元素的定位,方便插入和刪除操做;所以,頭節點不存儲實際的數據元素
。軟件
node->value = e; node->next = current->next; current->next = node;
toDel = current->next; current->next = toDel->next; delete toDel;
- 鏈表中的數據元素在物理內存中無相鄰關係
- 鏈表中的節點都包含數據域和指針域
- 頭節點用於輔助數據元素的定位,方便插入和刪除操做
- 插入和刪除操做須要保證鏈表的完成性
以上內容整理於狄泰軟件學院系列課程,請你們保護原創!