鏈表習題(1)-設計一個遞歸算法,刪除不帶頭結點的單鏈表L中所有值為x的結點


 1 /*設計一個遞歸算法,刪除不帶頭結點的單鏈表L中所有值為x的結點*/
 2 /*
 3     算法思想:設f(L,x)的功能是刪除以L為首結點指針的單鏈表中所有值等於x的結點,
 4     則顯然有f(L->next,x)的功能是刪除以L->next為首結點指針的單鏈表中所有值等於x
 5     的結點。遞歸模型如下:
 6         終止條件:f(L,x)=不做任何事情        若L為空表
 7         遞歸主體:f(L,x)=刪除*L結點;f(L->next,x);        若L->data == x
 8                  f(L,x)=f(L->next,x)                其他情況
 9 */
10 void Del_X_3(LinkList& L, Elemtype x)
11 {
12     LNode* p;        //指向待刪除的結點
13     if (L == NULL)
14         return;        //遞歸出口
15     if (L->data == x)
16     {
17         p = L;
18         L = L->next;
19         free(p);
20         Del_X_3(L, x);
21     }
22     else
23         Del_X_3(L->next, x);
24 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM