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++相关推荐

  1. 二叉树的遍历(递归与非递归)

    class Node: # 定义树节点def __init__(self, value, left=None, right=None): # 节点的值及左子树.右子树self.value = valu ...

  2. 刷题:二叉树的遍历方式及根据遍历结果还原二叉树

    二叉树的遍历方式及根据遍历结果还原二叉树 1. 二叉树的遍历方式 2. 根据遍历结果还原二叉树 2.1 已知先序遍历和中序遍历还原二叉树 2.2 已知后序遍历和中序遍历还原二叉树 实验代码: 1. 二 ...

  3. 后序遍历的非递归算法python_刷题系列 - Python用非递归实现二叉树后续遍历

    顺便把Python用非递归实现二叉树后续遍历也写了. 其实前序中序和后续都是针对父节点说的.比如下面这个最简单二叉树. 前序就是ABC,父节点A在前 中序就是BAC,父节点A在中间 后序就是BCA,父 ...

  4. 二叉树 1.0 -- 创建二叉树、遍历二叉树、二叉树常见问题求解

    树的结构主要是为了查找,这个主要是为了搜索,树的结构关注的不是增删查改 树 广义上面的树的结构我们不知道树的一个节点是有几个子节点的,所以这个时候我们需要定义的一种结构就是,一个节点的孩子是可以动态的 ...

  5. PTA数据结构与算法题目集 6-9 二叉树的遍历

    PTA数据结构与算法题目集(中文) 6-9 二叉树的遍历 void InorderTraversal( BinTree BT ){if(BT==NULL)return;if(BT->Left){ ...

  6. 【swjtu】数据结构实验6_二叉树的遍历算法

    实验内容及要求: 编写程序,用先序递归遍历法建立二叉树的二叉链表存储结构,然后输出其先序.中序.后序以及层次遍历结点访问次序.其中层次遍历的实现需使用循环队列.二叉树结点数据类型建议选用字符类型. 实 ...

  7. 重拾算法(3)——用458329个测试用例全面测试二叉树和线索二叉树的遍历算法

    重拾算法(3)--用458329个测试用例全面测试二叉树和线索二叉树的遍历算法 在"上一篇"和"上上一篇"中,我给出了二叉树和线索二叉树的遍历算法.给出算法容易 ...

  8. 二叉树的遍历(包括递归和非递归方法)

    二叉树的遍历 遍历二叉树,就是按一定的某条搜索路径走遍二叉树的所有结点,使每一个结点都被访问一次,而且只被访问一次.由于二叉树是非线性结构,每个结点都有可能有两棵子树,因此,树的遍历实质上是将二叉树的 ...

  9. java数据结构二叉树遍历_java数据结构 之 二叉树的遍历(1)

    树(tree)是一种抽象数据类型(ADT),用来模拟具有树状结构性质的数据集合.它是由n(n>0)个有限节点通过连接它们的边组成一个具有层次关系的集合 节点:上图的圆圈,比如A,B,C等都是表示 ...

  10. 二叉树深度优先遍历和广度优先遍历

    二叉树深度优先遍历和广度优先遍历

最新文章

  1. Drive.ai轰然倒下:曾估值两亿,吴恩达夫妇站台,苹果将接盘部分可用技术人才...
  2. 全球通信云市场爆发增长,RTC 技术普惠还有多远
  3. Lesson11 vSphere VUM
  4. python基础学习笔记(八)
  5. 后台开发经典书籍--大型分布式网站架构设计与实践
  6. MySQL索引分析和优化(转)
  7. delphi libeay32 各版本_Zbrush各版本合集
  8. 有用的Chrome扩展介绍 - Octotree - GitHub code tree
  9. 开源项目怎么变成自己的_将产品变成开源项目的深入指南
  10. pdf是什么意思中文
  11. Kalman算法C++实现代码(编译运行通过)
  12. Atitit 视频编码与动画原理attilax总结
  13. 什么是WEBserver? 经常使用的WEBserver有哪些?
  14. 3DMAX里怎样打包贴材质的文件不丢失贴图材质?
  15. echarts饼图显示百分比
  16. 912. 排序数组(中等 各种排序 数组)
  17. 工业大数据:中国智造下的“数字新基建”
  18. chemdraw怎么画拐弯的箭头_怎么样绘制弧形箭头?
  19. xxx is not in the sudoers file. This incident will be reported.解決方法
  20. 关于 Flash Builder

热门文章

  1. 哪些数学特征可以用来描述一组数据
  2. 硬盘分区,格式化分区,删除分区
  3. 卡数字怀念的东西:魔方
  4. 计算机正确的按键手法游戏,lol正确的按键手法图解
  5. 系统集成项目管理工程师10大管理
  6. 玫瑰花怎么画?花朵怎么画?鲜花怎么画?
  7. 为activity设置主题theme
  8. 如何在mac版chrome安装第三方插件
  9. 访问学者博士后面签后的几种情况?
  10. 调整虚拟机屏幕大小(全屏)