二叉树的遍历
2012-11-11 19:16
176 查看
遍历的概念
所谓遍历(traversal),就是沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算的基础遍历方案
三个操作
从二叉树的定义上可知,一棵非空的二叉树由根结点及左、右子树这三个部分组成。因此,在任一给定的结点上,可按某种次序执行三个操作(1)访问结点本身(N)
(2)遍历该结点的左子树(L)
(3)遍历该结点的右子树(R)
三种遍历的命名
(1)NLR:前序遍历(preorder traversal 先序遍历) --访问结点的操作发生在遍历其左右子树之前(2)LNR:中序遍历(inorder traversal ) --访问结点的操作发生在遍历其左右子树之间
(3)LRN:后序遍历(postorder traversal) --访问结点的操作发生在遍历其左右子树之后
遍历算法
示例:中序遍历算法void InOrder(BinTree T) { if(T) { //如果二叉树非空 InOrder(T->lchild); printf("%d",T->data); //访问结点 InOrder(T->rchild); } }
相关文章推荐
- 查找树(二叉树)的构建以及分层遍历
- 二叉树的层次遍历!!!
- 二叉树:由已知的遍历方式求另外的遍历方式
- 写出二叉树的先序遍历、中序遍历、后序遍历。
- 二叉链树的创建结点,递归构造二叉树、非递归构造二叉树、递归进行前、中、后遍历,非递归进行前中后遍历、层次遍历
- 二叉树的创建、前序遍历、中序遍历、后序遍历
- 二叉树的遍历
- 二叉树前序、中序、后序遍历相互求法
- [二叉树建树] 后序遍历与中序遍历建立二叉树
- 二叉树的遍历思想
- 判断给定数组是否是二叉树的前序或者后序遍历结果
- 遍历二叉树
- 第十一周 项目1-1 二叉树的层次遍历算法
- [置顶] 剑指offer:第23题从上往下打印二叉树-广度遍历
- 二叉树的遍历
- 用java实现二叉树的前序、中序、后序、层次遍历(递归和非递归版)
- 1291 数据结构上机测试4.1:二叉树的遍历与应用1
- 【暂无】二叉树 二叉树的三种遍历(binary-tree.cpp)
- 二叉树的概念,二叉树的数据存储结构,二叉树的性质,二叉树的遍历方法数据结构-树的学习(3)
- 二叉树的一些基础知识及创建、遍历