1.插在鍊錶開頭
新的節點插入到鍊錶的開頭,需要將新節點的指標指向鍊錶的首節點,並將鍊錶的首節點設為新節點。
2.插在鍊錶中間
新的節點插入到鍊錶的中間,如果我們找到pointer節點,則需要將新節點的指標指向pointer節點的指標(即下乙個節點),但不能讓鍊錶斷裂。所以第一步必須將新節點的指標指向pointer節點的指標,第二步再講pointer節點的指標指向新節點。
3,插在鍊錶尾端
新的節點插入到鍊錶的尾端(pointer節點),所以第一步必須將新節點的指標指向pointer節點的指標(null),第二步再將pointer節點的指標指向新節點
示例:設計乙個鍊錶內節點插入的程式。
#include #include #define max 10
struct list
;typedef struct list node;
typedef node *link;
int data[2][max] = ;
/**********************
* 插入節點至鍊錶內
**********************/
link insert_list(link head, link new, int key)
if(pointer->number == key) //插在鍊錶中間或尾端
pointer = pointer->next; //往下乙個節點 }
return head;
}/**********************
* 釋放鍊錶
*********************/
link free_list(link head) }
/**********************
* 輸出鍊錶
*********************/
link print_list(link head)
printf("\n");
}/**********************
* 建立鍊錶
*********************/
link create_list(link head)
else }
return head;
}int main()
free_list(head); //釋放鍊錶 }
return 0;
}
C語言實現單鏈表的節點插入(帶頭結點)
我在之前一篇部落格 c語言實現單鏈表 不帶頭結點 節點的插入 中詳細實現了如何在乙個不帶頭結點的單鏈表中進行節點的插入。但是在實際應用中,帶頭結點的鍊錶更為常用,更為方便。今天我們就要來使用帶頭結點的單鏈表進行節點的插入。示例 上傳至 核心 如下 node insertnode node pnode...
單鏈表插入新節點問題
insetnodeerror函式內直接定義乙個lnode結構體,而insetnode使用的是結構體指標 最終在vs2017上第一種在列印輸出時失敗,第二種正常。int insetnodeerror linklist l,int i,elemtype e s.next p next p next s ...
往單鏈表中插入節點
package testtwo.demo1 public class node 給節點新增下 下 乙個節點 node node currentnode currentnode.next currentnode.next node return currentnode.next 判斷當前節點是否為最後...