單鏈表結構與順序儲存結構優缺點:
簡單的對單鏈表結構和順序儲存結構做對比:
儲存分配方式
時間效能
空間效能
1. 順序儲存結構用一段連續的儲存單元依次儲存線性表的資料元素。
2. 單鏈表採用鏈式儲存結構,用一組任意的儲存單元存放線性表的元素。
1. 查詢
順序儲存結構 o( 1 )
單鏈表 o( n )
2. 查詢和刪除
順序儲存結構需要平均移動表長一半的元素。時間為 o( n ) ;
1. 順序儲存結構需要預分配儲存結構,分大了,浪費,分小了易發生上溢。
2. 單鏈表不需要分配儲存空間,只要有就可以分配,元素個數也不受限制。
若線性表需要頻繁查詢,很少進行插入和刪除操作時,宜採用順序儲存結構。若需要頻繁的插入和刪除時,宜採用單鏈表結構。
當線性表中的元素個數變化較大,或者根本不知道有多大時,最好用單鏈表結構,這樣可以不需要考慮儲存空間的大小問題。如果事先知道了線性表的大致長度,用順序儲存結構效率會高很多。
靜態鍊錶
用陣列表述的鍊錶叫做靜態鍊錶。這種描述方法還有起名叫做游標實現法。
/* 線性表的靜態鍊錶儲存結構 */
#define maxsize 1000 /* 假設鍊錶最長的長度是1000 */
typedef struct
第三章 線性表
一 順序表的儲存 include.h using namespace std const int maxsize 100 typedef int datatype typedef struct seqlist 二 順序表的操作 初始化順序表 void initlist seqlist l 建立順序表...
第三章線性表
線性表 零個或多個資料元素的有限序列.線性表的順序儲存結構 指的是用一段位址連續的儲存單元依次儲存線性表的資料元素.頭指標 頭指標是指鍊錶指向第乙個節點的指標,若煉表有頭結點,則是指向頭結點的指標.無論鍊錶是否為空,頭指標均不為空.頭指標是鍊錶的必要元素 頭結點 頭結點不是鍊錶的必須元素.頭結點是為...
第三章 鍊錶
redis中除了鍊錶鍵之外,發布與訂閱 慢查詢 監視器等功能也用到了鍊錶,redis伺服器本身還使用鍊錶來儲存多個客戶端的狀態資訊,以及使用鍊錶來構建客戶端輸出緩衝區。鍊錶節點定義 typedef struct listnode listnode 鍊錶型別定義 無環 表頭節點的prev指標和表尾節點...