二叉树的三种遍历方式是什么,二叉树的三种遍历方式是

  二叉树的三种遍历方式是什么,二叉树的三种遍历方式是

  永远的神干货盘点

  1.二叉树的结构:

  2.二叉树的前序遍历:

  3.二叉树的中序遍历:

  4.二叉树的后序遍历:

  5.二叉树前、中、后序的代码实现:

  前序遍历函数:

  中序遍历函数:

  后序遍历:

  完整代码:

  代码运行结果截图:

  编辑1.二叉树的结构:每一个二叉树均可以分为三部分:1.根节点2.左子树3.右子树。

  比如上图中的A的左右子树分别是乙、丙、而E的左右子树为零、零。通常我们把空省略。

  2.二叉树的前序遍历:又叫先根遍历,遍历顺序是根节点、左子树、右子树。

  上图的前序遍历:A B D空空E空空C空空

  省略空后:A B D E C

  3.二叉树的中序遍历:遍历顺序:左子树、根节点、右子树

  上图的中序遍历:空D空B空E空A空C空

  省略空后:D建筑工程公司

  4.二叉树的后序遍历:遍历顺序:左子树、右子树、根节点

  上图的中序遍历:NULL NULL NULL NULL D NULL NULL E B NULL NULL C A

  省略空后:D欧洲银行

  5.二叉树前、中、后序的代码实现:前序遍历函数:void prev_order(BTNode* root)//前序遍历

  {

  if (root==NULL)

  {

  printf( NULL );

  返回;

  }

  printf(%c ,root-data);

  上一个订单(根左);

  上一个订单(根右);

  }

  中序遍历函数:void on_order(BTNode* root)//中序遍历

  {

  if (root==NULL)

  {

  printf( NULL \ n );

  返回;

  }

  上一个订单(根左);

  printf(%c ,root-data);

  上一个订单(根右);

  }

  后序遍历:void post_order(BTNode* root)//后序遍历

  {

  if (root==NULL)

  {

  printf( NULL \ n );

  返回;

  }

  上一个订单(根左);

  上一个订单(根右);

  printf(%c ,root-data);

  }

  完整代码:# define _ CRT _ SECURE _ NO _ WARNINGS 1

  #包含标准视频

  #包含标准库

  typedef char BTDataType

  数据类型说明结构双星系统

  {

  Bt数据类型数据;

  结构BinaryTreeNode * left

  struct BinaryTreeNode * right

  } BTNode

  BTNode* BuyNode(BTDataType x)//开辟空间存储变量

  {

  Bt节点*新节点=(Bt节点*)malloc(sizeof(Bt节点));

  新节点-数据=x;

  new node-left=NULL;

  new node-right=NULL;

  返回节点

  }

  void prev_order(BTNode* root)//前序遍历

  {

  if (root==NULL)

  {

  printf( NULL );

  返回;

  }

  printf(%c ,root-data);

  上一个订单(根左);

  上一个订单(根右);

  }

  void on_order(BTNode* root)//中序遍历

  {

  if (root==NULL)

  {

  printf( NULL \ n );

  返回;

  }

  上一个订单(根左);

  printf(%c ,root-data);

  上一个订单(根右);

  }

  void post_order(BTNode* root)//后序遍历

  {

  if (root==NULL)

  {

  printf( NULL \ n );

  返回;

  }

  上一个订单(根左);

  上一个订单(根右);

  printf(%c ,root-data);

  }

  int main(void)

  {

  Bt节点* n1=buy节点( A );

  Bt节点* N2=买入节点( B );

  Bt节点* n3=buy节点( C );

  Bt节点* n4=buy节点( D );

  Bt节点* n5=buy节点( E );

  n1-左=n2

  n1-右=n3

  氮气-左=n4

  氮气-右=n5

  prev _ order(n1);

  printf( \ n );

  on _ order(n1);

  printf( \ n );

  post _ order(n1);

  printf( \ n );

  返回0;

  }

  代码运行结果截图:

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 二叉树深度遍历算法,多叉树的深度优先遍历
  • C++创建二叉树,C++实现二叉树
  • 如果希望按照非递减顺序访问二叉树所有节点,二叉树中至少包含一个节点
  • 二叉查找树镜像,镜像对称二叉树
  • 完全二叉树的先序遍历,请写出该二叉树的先序和层次遍历的序列
  • 二叉搜索树和二叉查找树,二叉树 二叉搜索树区别
  • 二叉树查找第k个最小元素,找出二叉搜索树第k小的节点
  • 如果f是由有序树t转换而来的二叉树,
  • 判断二叉树是否是平衡二叉树,b+树是不是平衡二叉树
  • 二叉链表实现完全二叉树,采用三叉链表存储二叉树
  • java二叉树排序算法,二叉排序树的实现
  • java二叉树的遍历算法代码,编程实现二叉树的遍历算法
  • java二叉树删除,二叉树查找算法java
  • java二叉树查找,二叉搜索树的定义
  • 留言与评论(共有 条评论)
       
    验证码: