二叉树的遍历 三
来源:互联网 发布:带海拔的指南针软件 编辑:程序博客网 时间:2024/04/24 11:47
二叉树的遍历是指按照某种顺序访问二叉树中的每个结点,使每个结点被访问一次,而且仅被访问一次。
1.先序遍历
先序遍历 先序遍历是从当前结点(temp)开始,然后访问其左孩子,再访问其右孩子。如果从BST树的根结点temp开始,算法如下:
(1) 如果temp为空,退出
(2)访问temp,输出值
(3)对temp的左孩子重复第一步。
(4)对temp的有孩子重复第二步。
先序遍历的递归算法如下:
public void PreorderTraversal(Node temp)
{
if(temp!=null)
{
Console.WriteLine("结点的值为:"+temp.Value.ToString());//输出结点的数据域
PreorderTraversal(temp.Left);//先序递归遍历root的左子树
PreorderTraversal(temp.right);//先序递归遍历root的右子树
}
else
return;
}
2.中序遍历
中序遍历是从当前结点的左孩子开始访问,再访问当前结点,最后是其右结点。假定BST树的根结点为temp,算法如下:
(1)如果temp为空,退出
(2)访问temp的左孩子
(3)对temp的重复第一步
(4)对temp的右孩子重复第一步
中序遍历的算法如下:
public void InorderTraversal(Node temp)
{
if(temp != null)
{
InorderTraversal(temp.left);//中序递归遍历root的左子树
Console.WriteLine(temp.Value.ToString());
InorderTraversal(temp.Right);//中序递归遍历root的右子树
}
else
return;
}
3.后序遍历
后序遍历首先从访问当前结点的左孩子开始,然后是右孩子,最后才是当前结点的本身。假定BST树的根结点为temp,算法如下:
public void PostOrderTraverse(Node temp)
{
if(temp != null)
{
PostOrderTraverse(temp.Left);//先序递归遍历root的左子树
PostOrderTraverse(temp.Right);//先序递归遍历root的右子树
Console.WriteLine(temp.Value.Tostring());//输出结点的数据域
}
else
return;
}
- 二叉树的遍历 三
- 二叉树的三种遍历方式
- 二叉树的三种遍历
- 数据结构-二叉树的三种遍历
- 二叉树的三种遍历方法
- 二叉树的三种遍历
- 二叉树的三种遍历
- 遍历二叉树的三种方法
- 二叉树的三种遍历方式
- 二叉树的三种遍历练习题
- 二叉树的三种遍历方法
- 二叉树的三种遍历
- 二叉树的三种遍历
- 二叉树的三种基本遍历
- 二叉树的常用三种遍历
- 完全二叉树的三种遍历
- 二叉树的三种遍历
- 二叉树的三种遍历图解
- 猥琐的发了一个贴
- 转帖-----我的WinCE5.0入门全过程,为了方便后来者,写了一天多,仅供大家参考!(开发环境建立+流驱动开发+相关资料)
- Android 的系统属性(SystemProperties)设置分析
- 动态链接库加载出错:cannot restore segment prot after reloc: Permission denied
- Android键盘系统相关代码分析(1)
- 二叉树的遍历 三
- 拓扑排序 C++代码实现
- 金山卫士开源了
- Alternativa3D 入门整理
- iPhone 3D游戏开发课程
- 倍增算法求解字符串的后缀数组
- Aternativa3D 7.5中的MapMapping和LOD技术
- Asp 创建Excel 类
- fopen