本文分享:后根遍历和后序遍历的区别?,二叉树的左右子树交换的算法实现?,树的先根遍历和二叉树的先序遍历?,c语言遍历二叉树的代码?等内容,具体看全文。
二叉树三种遍历方法优缺点
后根遍历和后序遍历的区别?
后根遍历和后序遍历的区别?
后序遍历和后根遍历都是指的一个二叉树遍历当时先遍历左子树,再遍历右子树,最后遍历root节点的方式,所以没有区别
二叉树的左右子树交换的算法实现?
使用遍历,每遍历到一个结点,就交换其左右子树voidSwap(bnode*root){//使用后序遍历bnode*tempif(root!NULL){Swap(root-gtlchild):Swap(root-gtrchild)temproot-gtlchildroot-gtlchildroot-gtrchildroot-gtrchildtemp}}
树的先根遍历和二叉树的先序遍历?
先序遍历也叫做先根遍历、前序遍历,可记做根左右(二叉树父结点向下先左后右)。
首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树,如果二叉树为空则返回。
先序遍历(Pre-order),按照根左右的顺序沿一定路径经过路径上所有的结点。在二叉树中,先根后左再右。巧记:根左右。
二叉树的先序遍历就是先遍历根节点,然后在遍历左节点,最后遍历右节点。
因此,二者的意思,是一致的。
c语言遍历二叉树的代码?
1.t malloc(sizeof(tree))
2.t-gtrchild createTree()
3.void qianxu(tree *t)
4.zhongxu(t-gtlchild )//再读左子树
printf(#34%c#34,t-gtdata)//先读根结点
zhongxu(t-gtrchild )//再读右子树
5.houxu(t-gtlchild )//再读左子树
houxu(t-gtrchild )//再读右子树
printf(#34%c#34,t-gtdata)//先读根结点
0
(t-gtlchild) count(t-gtrchild) 1
8.t1-gtdatat-gtdata
t1
m 1
PS:注意有些语句结尾是没有分号的

117笔记