91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現遞歸刪除二叉樹中以x為根的子樹

發布時間:2021-08-05 15:08:52 來源:億速云 閱讀:180 作者:小新 欄目:編程語言

小編給大家分享一下如何實現遞歸刪除二叉樹中以x為根的子樹,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

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

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

//遞歸刪除二叉樹中以x為根的子樹,(flag為標志)
int DelRoot_x(BiTree &T, int x,int flag)
{
  if(T == NULL)
    return 0;
  else
  {
    if(T->data == x)  //如果當前節點的值為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結點,則需要向上層結點傳遞信息,以便其父節點將對應的指針域賦空
        return 1;
      delete T;
    }
    else
    {
       if(1 == lef_ret)  //從子結點接受收的信息,即如果其子結點為x,需要將其指針域賦空
        T->lchild = NULL;
      if(1 == rig_ret )  //從子結點接受收的信息,即如果其子結點為x,需要將其指針域賦空
        T->rchild = NULL;
    }
  }
  return 0;
}

以上是“如何實現遞歸刪除二叉樹中以x為根的子樹”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

孝感市| 上犹县| 兴隆县| 墨竹工卡县| 江都市| 平原县| 洛宁县| 绥中县| 邯郸市| 武鸣县| 穆棱市| 巴楚县| 兰溪市| 贞丰县| 闻喜县| 深圳市| 玛曲县| 宁安市| 汝州市| 玉林市| 旺苍县| 贡山| 扎鲁特旗| 中江县| 尼木县| 若尔盖县| 澄城县| 蒲城县| 丰镇市| 邮箱| 嘉黎县| 石门县| 南昌市| 延吉市| 莱西市| 望都县| 通海县| 江山市| 扶风县| 射阳县| 桂平市|