中序线索化二叉树:递归实现
2016-09-22 11:35
260 查看
template<class T>
void ThreadBinaryTree<T>::InThread(ThreadBinaryTreeNode<T>* root,ThreadBinaryTreeNode<T>* &pre){
if(root==NULL)
return;
//中序线索化左子树
InThread(root->leftchild(),pre); //左路下降递归
if(root->leftchild()==NULL){
//建立前驱线索
root->left=pre; //把pre变量内容赋给左边线索
root->iTag=1; //属性设为线索属性
}
if((pre))&&(pre->rightchild()==NULL)){
//建立后继线索
pre->right=root;
pre->rTag=1;
}
pre=root;
InThread(root->rightchild(),pre);//中序线索化右子树
}
void ThreadBinaryTree<T>::InThread(ThreadBinaryTreeNode<T>* root,ThreadBinaryTreeNode<T>* &pre){
if(root==NULL)
return;
//中序线索化左子树
InThread(root->leftchild(),pre); //左路下降递归
if(root->leftchild()==NULL){
//建立前驱线索
root->left=pre; //把pre变量内容赋给左边线索
root->iTag=1; //属性设为线索属性
}
if((pre))&&(pre->rightchild()==NULL)){
//建立后继线索
pre->right=root;
pre->rTag=1;
}
pre=root;
InThread(root->rightchild(),pre);//中序线索化右子树
}
相关文章推荐
- 【数据结构基础】前序、中序、后序线索化二叉树(非递归实现)
- 二叉树的遍历;前序 中序 后序遍历二叉树;递归 非递归实现; 重建二叉树;编程之美重建二叉树
- 二叉树的 前序、中序、后序的代码实现(递归和非递归)
- 二叉树前序、中序、后序遍历的递归与非递归算法实现
- [转]非递归实现二叉树的前序,中序,后序遍历
- 二叉树的遍历:前序,中序,后序,层序--包括递归和非递归实现
- 二叉树的中序非递归实现和层序算法
- 二叉树先序,中序,后序遍历非递归实现
- 二叉树的遍历:前序、中序、后序、层序的非递归实现
- 二叉树的遍历 前序 中序 后序 分别实现递归和非递归遍历方式
- 二叉树的前序、中序、后序的实现(递归和非递归)
- java语言实现二叉树的前序、中序与后序遍历(递归与非递归)
- 二叉树先序、中序、后序遍历的非递归实现
- 【工程】二叉树已知前序/中序的顺序,构造树的递归等实现
- 二叉树先序、中序、后序遍历的非递归实现
- 二叉树的遍历:前序,中序,后序,层序--包括递归和非递归实现
- 二叉树先序,中序,后序遍历非递归实现
- 二叉树的创建,先序、中序、后序遍历的递归实现以及层序遍历
- 二叉树的建立以及前序、中序、后序遍历的递归和非递归实现
- Java实现对二叉树前序/中序/后序的递归与非递归算法