用遞迴刪除各種節點

2022-05-06 17:00:10 字數 2135 閱讀 3260

#include #include 

#include

#define maxsize 1000typedef

intelemtype;

typedef

struct node node;

typedef node *linkednode;

/*[1] 求以h為頭指標的單鏈表的節點個數

*/int getnodenum(linkednode &h)

/*[2] 正向顯示以h為頭指標的單鏈表的所有節點值

*/void printforward(linkednode &h)

/*[3] 反向顯示以h為頭指標的單鏈表的所有節點值

*/void printreverse(linkednode &h)

/*[4] 刪除以h為頭指標的單鏈表中值為x的第乙個節點

*/bool deletefirstx(linkednode &h,elemtype x)

linkednode p;

p =h;

h = h->next;

free

(p);

return

true

; }

else

if(h->next!=null)

}//遞迴體

if(deletefirstx(h->next,x))

return

true

;

else

return

false;}

/*[5] 刪除以h為頭指標的單鏈表中值為x的所有節點

*/void deleteallx(linkednode &h,elemtype x)

linkednode p;

p =h;

h = h->next;

free

(p);

deleteallx(h,x);

}else

if(h->next==null) //

遞迴出口

return

;

else

if(h->next->data==x)

else

deleteallx(h->next,x);}/*

[6] 刪除以h為頭指標的單鏈表中最大節點值

*/void deletemaxnode(linkednode &h,linkednode c,linkednode p)

if(p==h && p->data > p->next->data)

else

}if(c->next->data > p->next->data)

p =c;

deletemaxnode(h,c->next,p);}/*

[7] 刪除以h為頭指標的單鏈表中最小節點值

*/void deleteminnode(linkednode &h,linkednode c,linkednode p)

if(p==h && p->data < p->next->data)

else

}if(c->next->data < p->next->data)

p =c;

deleteminnode(h,c->next,p);}/*

1. 初始化單鏈表

*/linkednode linkedlistinit() /*

2. 清空單鏈表

*/void linkedlistclear(linkednode &l)

return;}

/*3. 用尾插法建立單鏈表

*/linkednode linkedlistcreat( linkednode l,elemtype a,

int n ) //

講陣列a中的元素以尾插法放入鍊錶中

returnl;}

intmenu()

linkednode reply(linkednode head,

intin

) system(

"pause");

system(

"cls");

return

head;

}int

main()

return0;

}

用遞迴演算法查詢父節點下的所有葉子節點

父節點 葉子節點 子節點一 葉子節點 葉子節點 子節點二 子節點三 葉子節點 葉子節點 如何得到父節點 採用遞迴演算法,碰到葉子節點就加到列表裡,不是葉子節點就對其進行迴圈再遞迴遍歷 向旗新增 實現將得到的目錄的所有子目錄和目錄本身變成id的list param 目錄id return 目錄與其所有...

遞迴刪除乙個節點以及該節點下的所有節點示例

有的時候刪除資訊的時候,需要把這條資訊下的所有的都刪除,這個時候就需要遞迴刪除了。下面是我在做部門管理中的刪除部門功能的時候寫的一段遞迴刪除乙個部門以及它的所有子部門的一段 僅供大家參考和自己以後備用。下面是我的一段 的展示 複製 如下 修改一條部門資訊 function del bumen id ...

PHP用遞迴的方法刪除目錄

最近在寫乙個phpcms的檔案管理器外掛程式,在開發刪除目錄的功能的時候發現用php自帶的rmdir 函式在資料夾不為空的時候是無法刪除目錄的,所以只能從最底層開始清空目錄,這裡就用到了遞迴的方法 刪除目錄 param character dir 目錄名稱 function deletedir di...