原理:順序表儲存是將資料元素放到一塊連續的記憶體儲存空間
,相鄰資料元素的存放位址也相鄰
(邏輯與物理統一)。優點:
(1)空間利用率高。(區域性性原理,連續存放,命中率高)
(2)訪問速度高效,通過下標來直接儲存。
缺點:
(1)插入和刪除比較慢,比如:插入或者刪除乙個元素時,整個表需要遍歷移動元素來重新排一次順序。
(2)不可以增長長度,有空間限制,當需要訪問的元素個數可能多於順序表的元素個數時,會出現」溢位」問題.當元素個數遠少於預先分配的空間時,空間浪費巨大。
時間效能 :查詢 o(1) ,插入和刪除o(n)。
原理:鍊錶儲存是在程式執行過程中*頻繁的查詢卻很少的插入和刪除操作可以用順序表儲存,堆排序,二分查詢適宜用順序表.動態的分配
空間,只要儲存器還有空間,就不會發生儲存溢位問題,相鄰資料元素可隨意存放,但所佔儲存空間分兩部分,一部分存放結點值,另一部分存放表示結點關係間的指標。優點:
(1)訪問某個元素速度慢。
(2)插入和刪除速度快,保留原有的物理順序,比如:插入或者刪除乙個元素時,只需要改變指標指向即可。
(3)沒有空間限制,儲存元素的個數無上限,基本只與記憶體空間大小有關.
缺點:
(1)占用額外的空間以儲存指標(浪費空間,不連續存放,malloc開闢,空間碎片多)
(2)查詢速度慢,因為查詢時,需要迴圈鍊錶訪問,需要從開始節點乙個乙個節點去查詢元素訪問。
時間效能 :查詢 o(n) ,插入和刪除o(1)。
*如果頻繁的插入和刪除操作很少的查詢就可以使用鍊錶儲存
*順序表適宜於做查詢這樣的靜態操作;鍊錶適宜於做插入、刪除這樣的動態操作。
*若線性表長度變化不大,如果事先知道線性表的大致長度,比如一年12月,一周就是星期一至星期日共七天,且其主要操作是查詢,則採用順序表;若線性表長度變化較大或根本不知道多大時,且其主要操作是插入、刪除,則採用鍊錶,這樣可以不需要考慮儲存空間的大小問題
學習1 順序表與鍊錶的區別
總結 線性表可以用順序表或鍊錶儲存 兩種儲存表示各有哪些主要優缺點?線性表存在唯一的乙個稱作 第乙個 的元素 存在唯一的乙個稱作 最後乙個 的元素 除第乙個元素外,集合中的每乙個元素均只有乙個直接前趨 除最後乙個元素外,集合中的每個元素均只有乙個直接後趨。如下 示例 define maxsize 1...
順序表與鍊錶
單向鍊錶 雙向鍊錶 迴圈鍊錶 插入刪除過程要注意,初始指標應指向鍊錶尾節點 若當插入到頭前時,找不到前驅節點 當在更新尾節點時需要更新頭指標 鍊錶排序使用氣泡排序最為適合 資料結構 結構定義 結構操作 include include include include define malloc2 my...
順序表與鍊錶
它是n個具有相同特性的資料元素的有限序列。線性表是一種在實際中廣泛使用的資料結構,常見的線性表 順序表 鍊錶 棧 佇列 字串 邏輯上連續,物理上不一定連續 儲存方式 通常是陣列或者鏈式結構 順序表是用一段實體地址連續的儲存單元依次儲存資料元素的線性結構,一般情況下採用陣列儲存。在陣列上完成資料的增刪...