数据结构——线性表:顺序表、单向链表、循环链表、双向链表
?
線性表 ?
?
是一種數(shù)據(jù)結(jié)構(gòu):n個數(shù)據(jù)元素的有限序列
表示形式: L = (a1,a2...an)
a1是線性表的元素,小寫。
n=0時候為空表
數(shù)據(jù)元素具有相同特性
相鄰元素之間存在序偶關(guān)系:即有唯一的第一和最后一個元素,除了第一個元素外,每個元素有且只有一個前驅(qū),除最后一個元素外,有且只有一個后繼。
定義數(shù)據(jù)類型構(gòu)成list:
怎么具體實現(xiàn)
存儲結(jié)構(gòu):順序、鏈?zhǔn)?/strong>
線性表的順序存儲結(jié)構(gòu):順序表 (邏輯結(jié)構(gòu)和物理結(jié)構(gòu)相同)
線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu):鏈表
?
?
順序表
順序:用一組地址連續(xù)的存儲空間依次存儲線性表的數(shù)據(jù)元素。
順序表的特點:邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)一致。訪問每個數(shù)據(jù)元素花費時間相等。這種方法稱為隨機存儲結(jié)構(gòu)。
表示方法:用一維數(shù)組
線性表的基本操作:
初始化、銷毀、清空、判斷是否為空、求長度、取第i個元素、檢索L中的元素e、插入、返回、刪除、遍歷、...
例如:
?
順序表的應(yīng)用:
最大前綴子集:就是相同
解題思路:
?
?
線性表的 鏈?zhǔn)奖硎竞蛯崿F(xiàn)
順序表的局限:插入和刪除都要移動大量元素,耗費時間。
好的地方:隨機存儲
?
鏈?zhǔn)酱鎯?#xff1a;用一組任意存儲單元存放線性表
存儲單元不要求連續(xù):物理結(jié)構(gòu)不反映邏輯結(jié)構(gòu)
不可以隨機存取,但插入和刪除方便
需要兩個域:一個表示數(shù)據(jù)本身,一個表示數(shù)據(jù)元素的先后關(guān)聯(lián)。
結(jié)點中表示關(guān)聯(lián)的部分為指針。
取元素的話,順序表更快。 單鏈表慢一點,要一個個往下找。
?
?單鏈表取第i個元素: 時間更多
?
順序表取第i個元素:時間更快
?
單鏈表的插入操作:
?
循環(huán)鏈表:
?
雙向鏈表:
雙向循環(huán)鏈表:
?
?
總結(jié)
以上是生活随笔為你收集整理的数据结构——线性表:顺序表、单向链表、循环链表、双向链表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: static 静态成员变量和静态函数 C
- 下一篇: 机器学习视觉图像算法工程师--面试笔试-