二叉树的遍历和总结--C和C++
1.二叉树的建立以及前、中、后序遍历
struct BiTNode
{int data;BiTNode *lchild, *rchild;
};
//创建二叉树
BiTNode *CreatTree()
{int date;BiTNode *T;scanf("%d", &date);if (date == 0)return NULL;else{T = (BiTNode*)malloc(sizeof(BiTNode));T->data = date;T->lchild = CreatTree();T->rchild = CreatTree();}return T;
}
//前序遍历
void PreOrderTraversing(BiTNode *T)
{if (T){printf("%d ", T->data);PreOrderTraversing(T->lchild);PreOrderTraversing(T->rchild);}
}
//中序遍历
void MidOrderTraversing(BiTNode *T)
{if (T){MidOrderTraversing(T->lchild);printf("%d ", T->data);MidOrderTraversing(T->rchild);}
}
//后续遍历
void LastOrderTraversing(BiTNode *T)
{if (T){LastOrderTraversing(T->lchild);LastOrderTraversing(T->rchild);printf("%d ", T->data);}
}
代码解析:
前序遍历:若二叉树为空,则空操作返回,否则先访问根节点,然后前序遍历左子树再前序遍历右子树。ABCDEGF
中序遍历:若二叉树为空,则空操作返回,否则从根节点开始(并不是先访问根节点),中序遍历根节点的左子树,然后访问根节点,最后中序遍历右子树。CBEGDFA
后续遍历:若二叉树为空,则空操作返回,否则从左到右先叶子后节点的方式访问左右子树,最后访问根节点。CGEFDBA
二叉树的遍历和总结--C和C++相关推荐
- 二叉树的遍历(递归与非递归)
class Node: # 定义树节点def __init__(self, value, left=None, right=None): # 节点的值及左子树.右子树self.value = valu ...
- 刷题:二叉树的遍历方式及根据遍历结果还原二叉树
二叉树的遍历方式及根据遍历结果还原二叉树 1. 二叉树的遍历方式 2. 根据遍历结果还原二叉树 2.1 已知先序遍历和中序遍历还原二叉树 2.2 已知后序遍历和中序遍历还原二叉树 实验代码: 1. 二 ...
- 后序遍历的非递归算法python_刷题系列 - Python用非递归实现二叉树后续遍历
顺便把Python用非递归实现二叉树后续遍历也写了. 其实前序中序和后续都是针对父节点说的.比如下面这个最简单二叉树. 前序就是ABC,父节点A在前 中序就是BAC,父节点A在中间 后序就是BCA,父 ...
- 二叉树 1.0 -- 创建二叉树、遍历二叉树、二叉树常见问题求解
树的结构主要是为了查找,这个主要是为了搜索,树的结构关注的不是增删查改 树 广义上面的树的结构我们不知道树的一个节点是有几个子节点的,所以这个时候我们需要定义的一种结构就是,一个节点的孩子是可以动态的 ...
- PTA数据结构与算法题目集 6-9 二叉树的遍历
PTA数据结构与算法题目集(中文) 6-9 二叉树的遍历 void InorderTraversal( BinTree BT ){if(BT==NULL)return;if(BT->Left){ ...
- 【swjtu】数据结构实验6_二叉树的遍历算法
实验内容及要求: 编写程序,用先序递归遍历法建立二叉树的二叉链表存储结构,然后输出其先序.中序.后序以及层次遍历结点访问次序.其中层次遍历的实现需使用循环队列.二叉树结点数据类型建议选用字符类型. 实 ...
- 重拾算法(3)——用458329个测试用例全面测试二叉树和线索二叉树的遍历算法
重拾算法(3)--用458329个测试用例全面测试二叉树和线索二叉树的遍历算法 在"上一篇"和"上上一篇"中,我给出了二叉树和线索二叉树的遍历算法.给出算法容易 ...
- 二叉树的遍历(包括递归和非递归方法)
二叉树的遍历 遍历二叉树,就是按一定的某条搜索路径走遍二叉树的所有结点,使每一个结点都被访问一次,而且只被访问一次.由于二叉树是非线性结构,每个结点都有可能有两棵子树,因此,树的遍历实质上是将二叉树的 ...
- java数据结构二叉树遍历_java数据结构 之 二叉树的遍历(1)
树(tree)是一种抽象数据类型(ADT),用来模拟具有树状结构性质的数据集合.它是由n(n>0)个有限节点通过连接它们的边组成一个具有层次关系的集合 节点:上图的圆圈,比如A,B,C等都是表示 ...
- 二叉树深度优先遍历和广度优先遍历
二叉树深度优先遍历和广度优先遍历
最新文章
- Drive.ai轰然倒下:曾估值两亿,吴恩达夫妇站台,苹果将接盘部分可用技术人才...
- 全球通信云市场爆发增长,RTC 技术普惠还有多远
- Lesson11 vSphere VUM
- python基础学习笔记(八)
- 后台开发经典书籍--大型分布式网站架构设计与实践
- MySQL索引分析和优化(转)
- delphi libeay32 各版本_Zbrush各版本合集
- 有用的Chrome扩展介绍 - Octotree - GitHub code tree
- 开源项目怎么变成自己的_将产品变成开源项目的深入指南
- pdf是什么意思中文
- Kalman算法C++实现代码(编译运行通过)
- Atitit 视频编码与动画原理attilax总结
- 什么是WEBserver? 经常使用的WEBserver有哪些?
- 3DMAX里怎样打包贴材质的文件不丢失贴图材质?
- echarts饼图显示百分比
- 912. 排序数组(中等 各种排序 数组)
- 工业大数据:中国智造下的“数字新基建”
- chemdraw怎么画拐弯的箭头_怎么样绘制弧形箭头?
- xxx is not in the sudoers file. This incident will be reported.解決方法
- 关于 Flash Builder