二叉树的遍历实现
来源:互联网 发布:怎么优化宝贝标题贴吧 编辑:程序博客网 时间:2024/05/22 12:48
二叉树的先序遍历
二叉树的后序遍历
//先序遍历二叉树的递归实现void PreOrderTraverse(BiTree T){if(T){printf("%2c",T->data);//访问根结点PreOrderTraverse(T->lchild);//先序遍历左子树 PreOrderTraverse(T->rchild);//先序遍历右子树}}//二叉树的先序遍历非递归算法void PreOrderTraverse(BiTree T){BiTree stack[MAXSIZE];//定义一个栈,用于存放结点的指针int top;//定义栈顶指针BitNode *p;//定义一个结点的指针top=0;//初始化栈p=T;while(p!=NULL||top>0){while(p!=NULL)//如果p不空,访问根结点,遍历左子树{ printf("%2c",T->data);//访问根结点 stack[top++]=p;//将p入栈 p=p->lchild;//遍历左子树}if(top>0)//如果栈不空{p=stack[--top];//栈顶元素出栈p=p->rchild;//遍历右子树}}}
二叉树的中序遍历
//中序遍历二叉树的递归实现void PreOrderTraverse(BiTree T){if(T){PreOrderTraverse(T->lchild);//中序遍历左子树 printf("%2c",T->data);//访问根结点 PreOrderTraverse(T->rchild);//中序遍历右子树}}//二叉树的中序遍历非递归算法void PreOrderTraverse(BiTree T){BiTree stack[MAXSIZE];//定义一个栈,用于存放结点的指针int top;//定义栈顶指针BitNode *p;//定义一个结点的指针top=0;//初始化栈p=T;while(p!=NULL||top>0){while(p!=NULL)//如果p不空,访问根结点,遍历左子树{ stack[top++]=p;//将p入栈 p=p->lchild;//遍历左子树}if(top>0)//如果栈不空{p=stack[--top];//栈顶元素出栈 printf("%2c",T->data);//访问根结点p=p->rchild;//遍历右子树}}}
二叉树的后序遍历
//后序遍历二叉树的递归实现void PreOrderTraverse(BiTree T){if(T){PreOrderTraverse(T->lchild);//后序遍历左子树 PreOrderTraverse(T->rchild);//后序遍历右子树 printf("%2c",T->data);//访问根结点 }}//二叉树的后序遍历非递归算法void PreOrderTraverse(BiTree T){BiTree stack[MAXSIZE];//定义一个栈,用于存放结点的指针int top;//定义栈顶指针BitNode *p,*q;//定义结点的指针top=0;//初始化栈p=T,q=NULL;while(p!=NULL||top>0){while(p!=NULL)//如果p不空,访问根结点,遍历左子树{ stack[top++]=p;//将p入栈 p=p->lchild;//遍历左子树}if(top>0)//如果栈不空{p=stack[top-1];//取栈顶元素if(p->rchild==NULL||p->rchild==q)//如果p没有右孩子结点,或者右孩子结点已经访问过{ printf("%2c",T->data);//访问根结点q=p;p=NULL;top--;//出栈}elsep=p->rchild;}}}
0 0
- 二叉树遍历的实现
- 二叉树的遍历实现
- 二叉树的实现和二叉数的遍历实现
- 二叉树遍历 实现
- 树的遍历、平衡二叉树实现
- 树的遍历及二叉树实现
- 数据库中实现二叉树的遍历
- C#中实现二叉树的遍历
- 遍历二叉树的各种实现
- 二叉树的实现和遍历
- 非递归实现二叉树的遍历
- 二叉树遍历的递归实现图解
- 二叉树的遍历(Java实现)
- Java实现二叉树的多种遍历
- 二叉树的遍历递归实现
- 非递归实现二叉树的遍历
- C语言实现二叉树的遍历
- 二叉树的遍历(代码实现)
- zoj1382
- Android EditText 输入密码是否可见
- android studio使用imageLoader加载图片到listview上
- zoj1402
- 【Android导航】环境插件配置笔记
- 二叉树的遍历实现
- LeetCode(55) Jump Game
- 关于怎么向Xcode6 IOS8之后向项目中添加预编译文件
- mysql 服务1067 坑爹的错误
- zoj1405
- HDU 2138 How many prime numbers
- zoj1414
- OC_NSString
- MATLAB图像函数 块和邻域的处理