單鏈表的整表建立
——對於順序儲存結構的線性表的整表建立,我們可以用陣列的初始化來直觀理解。
——而單鏈表和順序儲存結構就不一樣了,它不像順序儲存結構這麼集中,他的資料可以是分散在記憶體各個角落的,他的增長也是動態的。
——對於每個單鏈表來說,他所占用空間的大小和位置是不需要預先分配劃定的,可以根據系統的情況和實際的需求即時生成。
——建立單鏈表的過程是乙個動態生成鍊錶的過程,從「空表」的初始狀態起,依次創立各元素結點並逐個插入鍊錶。
單鏈表建立的演算法思路如下:
——宣告乙個結點p和計數器變數i;
——初始化乙個空鍊錶l;
——讓l的頭結點的指標指向null,即建立乙個帶頭結點的單鏈表;
——迴圈實現後繼結點的賦值和插入。
頭插法建立單鏈表
——頭插法從乙個空表開始,生成新結點,讀取資料存放到新節點的資料域中,然後將新結點插入到當前鍊錶的表頭上,直到結束為止。
簡單來說,就是把新加進的元素放在表頭後的第乙個位置;
先讓新結點的next指向頭結點之後;
然後讓表頭的next指向新結點。
上面便是用頭插法建立鍊錶的**!!
尾插法建立單鏈表
上面便是用尾插法建立鍊錶的**!!
單鏈表的整表刪除:
單鏈表整表刪除的思路如下:
——宣告結點p和q;
——將第乙個結點賦值給p,下乙個結點賦值給q;
——迴圈執行釋放p和將q賦值給p的操作。
**如下:
單鏈表結構與順序儲存結構優缺點
從儲存分配方式、時間效能、空間效能三方面作對比。
儲存分配方式:
——順序儲存結構用一段連續的儲存單元依次儲存線性表的資料元素。
——單鏈表採用鏈式儲存結構,用一組任意的儲存單元存放線性表的元素。
時間效能:
——查詢
1.順序儲存結構o(1)
2.單鏈表o(n)
——插入和刪除
1.順序儲存結構需要平均移動表長一半的元素,時間為o(n)
2.單鏈表在九三出某位置的指標後,插入和刪除時間僅為o(1)
空間效能:
——順序儲存結構需要預分配儲存空間,分大了,容易造成空間浪費,分小了,容易發生溢位。
——單鏈表不需要分配儲存空間,只要有就可以分配,元素個數也不受限制。
明天開始學習靜態鍊錶!
c語言 資料結構 單鏈表
將線性表l a0,a1,an 1 中各元素分布在儲存器的不同儲存塊,稱為結點,通過位址或指標建立它們之間的聯絡,所得到的儲存結構為鍊錶結構,表中 ai的結點形式如圖表示 其中結點的data 域存放資料元素 ai,而 next 域是乙個指標,指向 ai的直接後繼 ai 1 所在的結點。單鏈表結構如下 ...
資料結構 單鏈表 C語言
單向鍊錶 鍊錶結點通常包含資料域與指標域,資料域用來儲存相關的使用者的資料,指標域用來指向下乙個結點。訪問單向鍊錶,需要從頭部 head 開始單向順序訪問,訪問終結於指標域 next 為null的結點 其儲存方式不同於以往的陣列,按照非連續位址方式儲存。優點 鍊錶長度可以實現動態增長,不必像陣列一樣...
C語言資料結構 單鏈表
單鏈表在資料結構裡十分常見,是一種常見的線性表,下面介紹其性質並用 實現相關功能 單鏈表以鏈結方式儲存資料 1 鍊錶的具體儲存表示為 用一組任意的儲存單元來存放線性表的結點 這組儲存單元既可以是連續的,也可以是不連續的 鍊錶中結點的邏輯次序和物理次序不一定相同。為了能正確表示結點間的邏輯關係,在儲存...