[問題]鏈結串列的刪除
假設我已經有一串鏈結串列front,要刪除某個值m(這個值是在串列裡頭的)
ptt=front; ==>因為等下front會改變指的地方,所以在用個ptt指最前面
if(front->data==m){
front=front->link; ===>這是當刪除第一個節點的情形
}
else{ ===>非第一個節點的情形
while(ptr->data!=m)===>宣告一個ptr用來先指出要刪除節點的值
{
ptr=ptr->link;}
while(front->link!=ptr)
{
front=front->link;}
front=ptr->link;
free(ptr);
}
然後在去執行這段,要輸出目前的串列結果
while(ptt!=NULL){
cout<<ptt->data;
cout<<endl;
ptt=ptt->link;
}
system("PAUSE");
return EXIT_SUCCESS;
}
結果,假設我原本的鏈結串列是1,2,3,4,5
然後刪掉3之後,結果會跑出1,2,0,3,4,5
為什麼會多個0呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.62.190.208
推
07/20 19:10, , 1F
07/20 19:10, 1F
→
07/20 19:11, , 2F
07/20 19:11, 2F
→
07/20 19:12, , 3F
07/20 19:12, 3F
→
07/20 19:12, , 4F
07/20 19:12, 4F
→
07/20 19:12, , 5F
07/20 19:12, 5F
→
07/20 19:13, , 6F
07/20 19:13, 6F
→
07/20 20:18, , 7F
07/20 20:18, 7F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章