- 5
- 0
- 约9.12万字
- 约 10页
- 2023-11-20 发布于山东
- 举报
五. 鏈表的刪除操作 從一個鏈表中刪除一個結點,並不是真正從記憶體中把它抹掉,而是把它從鏈表中分離出來,即改變鏈表的鏈接關係。 1.刪除第n個結點 將以head為頭的鏈表中的第n個結點從鏈表中移出,其後繼的結點往前移,使之仍為一個鏈表,只是結點數目比原來少1。 10.5 鏈表 例: 編寫函數,刪除學生鏈表head中的第n個結點。 分析: (1)p=head,q指針指向p所指結點的前1個結點; (2)i為訪問過的結點數目; (3)i++,q=p,p=p-next,p、q移動1個結點; (4)若p!=NULL且in-1,重複(3) (5)若n==1,則刪除第1個結點,將下一個結點作為鏈表頭結點: head=head-next; (6)若head==NULL,鏈表為空,不能刪除; (7)若p==NULL,第n個結點不存在,不能刪除; (8)找到第n個結點,刪除p結點: q-next=p-next; p的前1個結點的next值賦值為p的next域; (9)返回head。 10.5 鏈表 2. 刪除指定結點 例:編寫函數,刪除鏈表head中值為x的結點。 分析: (1)p=head,q指針指向p所指結點的前1個結點; (2)若head==NULL,鏈表為空,不能刪除; (3)q=p,p=p-next,p、q移動1個結點; (4)若p-next!=NULL且
原创力文档

文档评论(0)