採用頭插法和尾插法建立單鏈表

2021-07-28 20:17:12 字數 938 閱讀 4636

面說一下如果用c語言建立單鏈表,分為頭插法和尾插法兩種。

該方法從乙個空表開始,生成新結點,並將讀取到的資料存放到新結點的資料域中,然後將新結點插入到當前鍊錶的表頭,即頭結點之後,如圖2-4所示。

圖2-4  頭插法建立單鏈表

頭插法建立單鏈表的演算法如下:

複製

純文字複製

linklist

creatlist1

(linklist

&l)//while 結束

return l;

}

linklist  creatlist1(linklist &l)  //while 結束

return l;

}

釆用頭插法建立單鏈表,讀入資料的順序與生成的鍊錶中元素的順序是相反的。每個結點插入的時間為o(1),設單鏈表長為n,則總的時間複雜度為o(n)。頭插法建立單鏈表的演算法雖然簡單,但生成的鍊錶中結點的次序和輸入資料的順序不一致。若希望兩者次序一致,可採用尾插法。該方法是將新結點插入到當前鍊錶的表尾上,為此必須增加乙個尾指標r,使其始終指向當前鍊錶的尾結點,如圖2-5所示。

圖2-5  尾插法建立單鏈表

尾插法建立單鏈表的演算法如下:

複製

純文字複製

linklist

creatlist2

(linklist

&l)r->next = null;

//尾結點指標置空

return l;

}

頭插法和尾插法建立單鏈表

頭插法和尾插法建立單鏈表 include using namespace std typedef int elemtype typedef struct lnode linklist 頭插法建表 從尾部乙個乙個往前插入 void createlisthead linklist l,elemtype ...

頭插法和尾插法建立單鏈表

頭插法建立單鏈表 include include typedef struct lnodenode,linklist linklist headinsert linklist 頭插法建立單鏈表 void output linklist 遍歷輸出 int main void 頭插法建立單鏈表 link...

頭插法與尾插法建立單鏈表

單鏈表的建立一般主流分為兩種建立方式 頭插法和尾插法。頭插法1 建立頭節點,維護head指標 引用 來指向頭節點 2 newnode表示待插入節點,維護newnode指向新節點 3 case1 當鍊表為空時,即首次插入新節點,將head.next指向新插入節點,即head.next newnode ...