已采納回答 / 慕運維8757289
delete tree是沒錯的,應(yīng)該你的代可能有問題吧,至于為什么new 了Node不用delete,是因為delete tree時,會執(zhí)行~Tree()析構(gòu)函數(shù),里面已經(jīng)清除Node創(chuàng)建的所有節(jié)點了,再delete node會出錯的。。。。。
2016-09-01
最贊回答 / 123妮
//添加結(jié)點bool Tree::AddNode(int nodeIndex,int direction,Node *pNode){ Node *temp=SearchNode(nodeIndex); if(temp==NULL) { return false; } Node *node=new Node(); if(node==NULL) {//申請內(nèi)存失敗 return false; } node->index=pNode->index; node->data=pNode->...
2016-08-31
感覺判斷左右孩子的index再進行遞歸有點多余了,直接用左右孩子作為對象再次調(diào)用search函數(shù)就好了嘛
2016-08-23
最贊回答 / qq_楓_142
在Tree類中定義一個void DiGui(int nodeIndex);方法來遞歸刪除左右節(jié)點:void Tree::DiGui(int nodeIndex){?int currentNodeIndex = nodeIndex;?if(nodeIndex * 2 + 1 < m_iSize)?{??nodeIndex = nodeIndex * 2 + 1;??m_pTree[nodeIndex] = 0;??DiGui(nodeIndex);?}?if(currentNodeIndex * 2 ...
2016-08-22