單鏈表的刪除

2021-08-19 15:25:18 字數 570 閱讀 5806

從乙個動態鍊錶中刪除乙個結點就是將該系欸但從鍊錶中分離出來,並不是真正的從記憶體中將該節點抹去,只需要改變連線關係就行了。

重點語句:

p1->next=p2->next;
例子:編寫函式del,在單向鍊錶中刪除乙個結點。

分析:本題目所需要的建立鍊錶輸出鍊錶和前幾節都一樣,特殊的是del這個刪除操作的函式。

#include

#include

int main()

snode *del(snode *head,int number)

p1=head;

while(number!=p1->id&&p1->next!=null) //p1指向的不是要找的結點,並且後面好友結點

if(number==p1->id) //找到要刪除的結點

else

printf("找不到該結點");

return (head);

}

其中幾個函式和上一章節中的乙個樣子,這裡就不明確指出了,如果需要就請參考上一節(包括建立鍊錶和訪問鍊錶等)

單鏈表的刪除

include include include define n 10 typedef struct node stud stud creat int n 建立新的鍊錶的函式 h name 0 0 h link null p h for i 0 i p link s printf 請輸入第 d個人的...

單鏈表的刪除

time limit 3000ms,memory limit 10000kb,accepted 299,total submissions 494已知a,b和c為三個非遞減有序的線性表,均以單鏈表作為儲存結構。現要求對a表作如下操作 刪去那些既在b表中出現又在c表中出現的元素。試對單鏈表編寫實現上述...

單鏈表的刪除

單鏈表的刪除 1000 ms 10000 kb 593 1380 建立乙個長度為n的單鏈表,刪除鍊錶中所有資料元素為x的結點。資料型別為整型 輸入第一行為鍊錶的長度n 第二行為鍊錶中的資料元素 第三行為要刪除的資料元素x的值。輸出刪除資料x後,單鏈表中的資料元素。樣例輸入 101 2 3 4 5 6...