国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

遞歸刪除二叉樹中以x為根的子樹

2020-05-23 12:53:28
字體:
來源:轉載
供稿:網友

名稱:刪除二叉樹中以x為根的子樹

說明:此程序的大部分內容,注釋都解釋的較為詳細了。在這里需要提及一點的是此處遞歸函數flag傳遞的不是上篇中講的引用,而是普通的變量,因為在向下傳遞參數(當前結點是否是x的信息)的過程中只要傳遞給對應的子樹,并不需要傳遞給整個樹的結點。在下一篇會做個關于遞歸傳遞參數的總結。

//遞歸刪除二叉樹中以x為根的子樹,(flag為標志)int DelRoot_x(BiTree &T, int x,int flag){  if(T == NULL)    return 0;  else  {    if(T->data == x)  //如果當前節(jié)點的值為x,則更改標志位,在下面將向遞歸子函數中傳遞flag值    {      flag = 1;    }    int lef_ret = DelRoot_x(T->lchild,x,flag); //遞歸左子樹,lef_ret為從左子樹中返回的信息    int rig_ret = DelRoot_x(T->rchild,x,flag); //遞歸右子樹,rig_ret為從右子樹中返回的信息    if(1 == flag)    //如果標志為1,說明其祖父結點中有x,也就是說當前結點需要刪除    {      if(T->data == x)  //如果是x結點,則需要向上層結點傳遞信息,以便其父節(jié)點將對應的指針域賦空        return 1;      delete T;    }    else    {       if(1 == lef_ret)  //從子結點接受收的信息,即如果其子結點為x,需要將其指針域賦空        T->lchild = NULL;      if(1 == rig_ret )  //從子結點接受收的信息,即如果其子結點為x,需要將其指針域賦空        T->rchild = NULL;    }  }  return 0;}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網的支持。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 灌云县| 昌平区| 镶黄旗| 博白县| 吉安市| 铜川市| 抚松县| 长白| 湟源县| 南充市| 石嘴山市| 巴林左旗| 麦盖提县| 开江县| 冀州市| 资源县| 读书| 隆尧县| 乳山市| 贵南县| 台北市| 乳源| 芜湖县| 会东县| 临桂县| 庐江县| 祁门县| 鄂尔多斯市| 锦屏县| 郑州市| 饶河县| 夏河县| 安化县| 武强县| 吉水县| 原阳县| 鄂温| 财经| 澳门| 杭州市| 宜城市|