C++数据结构之二叉树(2)

while(p || !s.empty())
 {
  if(p)
  {
   s.push(p);
   p = p->leftChild;
  }
  else
  {
   p = s.top();
   p->Visit();
   s.pop();
   p = p->rightChild;
  }
 }
}

void BiTree::Destroy(Node * &root)
{
 if(root)
 {
  Destroy(root->leftChild);
  Destroy(root->rightChild);
  delete root;
  root = NULL;    //这一步为规范操作,防止root成为野指针
 }
}

BiTree::~BiTree()
{
 Destroy(root);
}

相关阅读:

二叉树的常见问题及其解决程序

【递归】二叉树的先序建立及遍历

在JAVA中实现的二叉树结构

【非递归】二叉树的建立及遍历

二叉树递归实现与二重指针

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/b0820cbe97d9e5a1122eb89ff4edc525.html