插入運算是將值為x的新節點,插入到單鏈表的第i個節點的位置上,即插入到節點ai-1 與 ai之間,具體演算法如下:
(1)找到節點ai-1儲存位置p;
(2)生成乙個資料域為x的新節點*s;
(3)新節點*s的指標域指向節點ai;
(4)令節點*p的指標域指向新節點*s;
#include
#include
typedef struct node
node;
// 尾插法建立單鏈表(帶頭節點)
node *createend(int arr, int len)
end->next = null; // 單鏈表建立完畢,將終端節點的指標域置空
return head;
}// 在單鏈表的第pos位置處插入乙個節點,資料為x
node *insert(node *head, int
pos, int
x) if (!p || j > pos)
node *s = (node *)malloc(sizeof(node)); // 新節點
s->data = x;
s->next = p->next;
p->next = s;
return head;
}// 單鏈表列印
void print(node *head)
}int main(void)
; int len = sizeof(arr)/sizeof(int);
node *head = createend(arr, len);
// 插入前
print(head);
insert(head, 5, 999);
// 插入後
print(head); // 若插入失敗,則列印出的仍是原來的表;
return
0;}
單鏈表的插入刪除
include using namespace std struct lnode void creat link lnode head head指標的引用,lnode head 傳遞的是指標,但是對於指標的原值卻發生了copy,這樣你雖然可以對指標指向的記憶體進行修改但是不能對指標進行修改。因此要傳...
單鏈表插入的實現
鍊錶 首先先來介紹一下單鏈表的基本結構,乙個單鏈表的節點 node 分為兩部分,第乙個部分儲存或者顯示結點的資訊,另乙個部分儲存的是下乙個結點的位址,每個結點物件維護乙個 next 引用,next引用指向下乙個節點物件,最後乙個結點儲存的位址的部分指向的是空值。1.在鍊錶的頭結點前插入新的結點 刪除...
單鏈表插入操作
typedef struct node node 能夠獲取到根指標,並且修改根指標的指向,能夠檢查鍊錶是否到底 int singlelistinsert node rootp,int newvalue while current null current valueplink unitnew nod...