鍊錶是線性表的一種,一般來說鍊錶就是一系列的儲存資料元素的單元通過指標串接起來形成的,常見的鍊錶是單鏈表和雙鏈表,乙個域用於資料元素的儲存,另乙個或兩個域是指向其他單元的指標。對於單鏈表來說,指標域是乙個,指向當前節點的後繼節點;雙鏈表來說,乙個指標域指向當前節點的後繼節點,另外乙個指標域指向當前節點的前驅節點。
本文只討論單鏈表的情況。單鏈表的建立分為頭插法和尾插法兩種。如下:
實現**如下:
//頭插法和尾插法建立鍊錶,整型為例
#include
#include
typedef struct lnode lnode,
*linklist;
linklist headcreatlist
(lnode *l)
returnl;
}linklist tailcreatlist
(lnode *l)
r->next=
null
;returnl;
}void
display
(lnode *l)
printf
("\n");
}int main()
return0;
}
**執行結果如下:
注意:由建立結果,我們可以看出:
頭插法建立的鍊錶其順序和輸入資料的順序相反;尾插法建立的鍊錶其順序和輸入資料的順序相同。
鍊錶操作 頭插法尾插法
單鏈表的插入操作,包括頭插和尾插,兩種的時間複雜度都為o n 單鏈表插入操作 頭插 尾插 include include using namespace std 定義結點資料型別 typedef int elemtype 結點定義 typedef struct lnode lnode,linklis...
c語言頭插法尾插法建立鍊錶
頭插法尾插法建立鍊錶一直是大家初學演算法時搞不明白的事情,現在我將其總結了一下,發個部落格記錄一下 尾插法就是定義乙個頭結點之後,挨個往後建立鍊錶。最關鍵的兩步就是 head next a head a 這兩步搞懂了就搞懂尾插法了 鄙人不才畫了兩幅圖,大家根據這個圖的原理一步步推自己再畫一下就能搞懂...
鍊錶之頭插法和尾插法
頭插法 生成的鍊錶和我輸入的資料順序是相反的,所以又稱逆序建表法。例如 e d c b a 建成的鍊錶就是 head a b c d e 演算法步驟 建立乙個只有頭結點的空鍊錶。根據待建立鍊錶的元素個數n,迴圈n次執行以下操作 生成乙個新結點 p 輸入元素值賦給新結點 p的資料域 將新結點 p插入到...