当前位置:   article > 正文

数据结构--二叉树及其应用_建立一棵二叉树,并对其进行遍历(先序、中序、后序,层序),打印输出遍历结

建立一棵二叉树,并对其进行遍历(先序、中序、后序,层序),打印输出遍历结

一、上机实验的问题和要求:

建立一棵二叉树,并对其进行遍历(先序、中序、后序),打印输出遍历结果。

二、程序设计的基本思想,原理和算法描述:

首先创建一个二叉树BiTree,然后分别对二叉树进行先序遍历、中序遍历、后序遍历,最后得出结果并输出。

三、调试和运行程序过程中产生的问题及采取的措施:

调试程序时未发现错误

四、源程序及注释

  1. #include<iostream>
  2. using  namespace std;
  3. typedef  struct BiTNode
  4. {
  5.      int data;
  6.      struct BiTNode *lchild, *rchild;
  7. }BiTNode ,*BiTree;
  8. BiTree creatbitree()
  9. {
  10.     BiTree T;
  11.      int p;
  12.     scanf( "%d",&p);
  13.      if(p== 0)
  14.         T= NULL;
  15.      else
  16.     {
  17.         T=(BiTNode * )malloc( sizeof(BiTNode));
  18.         T->data=p;
  19.         T->lchild=creatbitree();
  20.         T->rchild=creatbitree();
  21.     }
  22.      return T;
  23. }
  24. //先序遍历
  25. void preOrder(BiTree T)
  26. {
  27.      if(T!= NULL)
  28.     {
  29.         printf( "%d ",T->data);
  30.         preOrder(T->lchild);
  31.         preOrder(T->rchild);
  32.     }
  33. }
  34. //中序遍历
  35. void inOrder(BiTree T)
  36. {
  37.      if(T!= NULL)
  38.     {
  39.         inOrder(T->lchild);
  40.         printf( "%d ",T->data);
  41.         inOrder(T->rchild);
  42.     }
  43. }
  44. //后序遍历
  45. void postOrder(BiTree T)
  46. {
  47.      if(T!= NULL)
  48.     {
  49.         postOrder(T->lchild);
  50.         postOrder(T->rchild);
  51.          printf( "%d ",T->data);
  52.     }
  53. }
  54. int main()
  55. {
  56.     BiTree P;
  57.     P=creatbitree();
  58.     printf( "先序遍历:\n");
  59.     preOrder(P); 
  60.     printf( "\n中序遍历:\n");
  61.     inOrder(P);
  62.     printf( "\n后序遍历:\n");
  63.     postOrder(P);
  64.        printf( "\n");
  65.     return  0;
  66. }
  67.   

五、运行结果

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/704752
推荐阅读
相关标签
  

闽ICP备14008679号