亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
如果刪除根節點要把后面的子節點也刪掉吧,使用遞歸:int leftPos = nodeIndex*2 + 1;
int rightPos = nodeIndex*2 + 2;
int temp = 0;
if(leftPos <= m_iSize && m_pTree[leftPos] != 0){
DeleteNode(leftPos,&temp);
}
if(rightPos <= m_iSize && m_pTree[rightPos] != 0){
DeleteNode(rightPos,&temp);
}

已采納回答 / Wangge213
層序遍歷是一層一層進行訪問 中序遍歷是先訪問左子樹,然后訪問根節點,最后訪問右子樹
做了人生中第一次有意義的debug,有問題,耐心一點,一層層剝開,終會找到bug!

把void Node::DeleteNode()中的代碼:this->pParent->pRChild = NULL;寫成了this->pParent->pParent=NULL,因此刪除結點6時,采用后序遍歷,第五次當要訪問結點6的雙親結點2時就出現了問題,發生訪問沖突?。ㄎ遗挪榈搅薉eleteNode有問題,但編譯通過,邏輯有問題,怪不得一直沒有查出來?。?/div>
不是遞歸,遞歸是函數A里面調用函數A自身,此處的兩個searchNode不是同一個函數
今天就上數據結構的二叉樹,發現這個視頻比書本上已經老師講解的都要清晰~
感謝
看完了,感覺我智商有點跟不上呀呀呀呀
在構造時全部初始化為0會影響AddNode()中節點是否存在的判斷啊,我插入編譯運行結果是 3 0 0 0 0 0 0 0 0 0,
注釋掉才正常
看完感覺自己智商有點捉急
《數據結構探險之樹篇》代碼修正
http://www.xianlaiwan.cn/article/13384
上有老下有小醉了

已采納回答 / 幕幕的
你的node1,node2的增加不對,看下前面的代碼
有個疑問,在AddNode函數中,如果查找到該索引的結點已經有左右子結點了,此時我調用AddNode,direction為0,那么函數內部直接將該結點的左子節點指向新結點,這樣是否會造成原來的左子結點內存泄漏?此時函數內是否應該添加一個判斷,當結點有左右子結點時,直接返回添加失???

最贊回答 / 慕姐3585284
是的,就是如此。James老師這個樹篇講得不太好。而且也沒有講BST,平衡二叉樹等較深入較實用的知識。。。o(╯□╰)o希望他后面能補上吧。。。
有沒有課后作業可以自己編碼實踐一下的
課程須知
應該熟練掌握C++相關語法,重點掌握數組、結構體及遞歸函數,需要熟悉線性表和鏈表相關內容
老師告訴你能學到什么?
通過課程的學習,你將掌握樹的相關概念,數組二叉樹,鏈表二叉樹及二叉樹遞歸實現的前序遍歷、中序遍歷和后序遍歷

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!

本次提問將花費2個積分

你的積分不足,無法發表

為什么扣積分?

本次提問將花費2個積分

繼續發表請點擊 "確定"

為什么扣積分?

舉報

0/150
提交
取消