线性结构(顺序存储和链式存储)和非线性结构的特点及区别
1. 線性結構
特點:除第一個元素只有一個“后繼”和最后一個元素只有一個“前驅”,其它每個元素只有一個“前驅”元素和一個“后繼”元素。
常見的線性結構有:? 數組、鏈表、棧以及隊列。注意:棧和隊列本身不是一種數據結構,可通過數組或鏈表實現。
1.1 線性結構又分為順序存儲和鏈式存儲
線性結構又分為順序存儲和鏈式存儲,順序存儲:各個元素存儲的地址空間連續,邏輯相鄰的元素在物理內存中也相鄰,如數組;
鏈式存儲:各個元素存儲在任意的地址空間,邏輯相鄰的元素在物理內存中沒有聯系,如鏈表。
1.2 順序存儲和鏈式存儲的區別
1.2.1 順序存儲
優點:① 因為各個元素是連續儲存,而且當元素類型一致時占用空間大小一致,所以可以直接通過首元素地址計算
? ? ? ? ? ? ? ?某個元素的內存地址,從而訪問特定元素效率很高
? ? ? ? ? ② 對于有序數組,還可以通過二分查找提高元素查找的速度
缺點:① 由于順序存儲的特點,所以在刪除或插入元素后需要移動其它元素使得整體的存儲空間依然是連續的,
? ? ? ? ? ? ? ?所以刪除、插入元素效率低,如下圖。
? ? ? ? ? ?② 由于元素存儲空間連續,所以當有大數據時,較難分配一塊連續的大內存空間。
?
1.2.2 鏈式存儲
優點:① 由于鏈式存儲的特點,刪除或插入節點很方便,不需要移動其它元素,改變元素“連接”關系即可,
? ? ? ? ? ? ? ?所以刪除、插入元素效率高,如下圖。
缺點:① 因為存儲的任意性,只能通過前一個元素訪問下一個元素,每一次訪問元素都從頭節點開始遍歷,
? ? ? ? ? ? ? ?所以訪問特定元素或查找元素效率低。
?
2. 非線性結構
特點:每個元素可以和多個元素“連接”。
常見的非線性結構:二維數組、樹和圖。
?
?
總結
以上是生活随笔為你收集整理的线性结构(顺序存储和链式存储)和非线性结构的特点及区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决最短路径的Dijkstra算法详解,
- 下一篇: 循环队列真的没那么难,就那么几个注意点,