九周 项目2 二叉树遍历的递归算法

来源:互联网 发布:mac 查看磁盘剩余空间 编辑:程序博客网 时间:2024/06/06 15:01

问题及描述:

/*  烟台大学计算机学院    文件名称:angu.cpp    作者:范宝磊   完成日期:2017年10月29日    问题描述:实现二叉树的先序、中序、后序遍历的递归算法, 并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。    输入描述:无   输出描述:输出二叉树先中后序遍历结果   */       #include <stdio.h>    #include "../btree.h"//用到了btree.h    void PreOrder(BTNode *b)        //先序遍历的递归算法  {      if (b!=NULL)      {          printf("%c ",b->data);  //访问根节点          PreOrder(b->lchild);    //递归访问左子树          PreOrder(b->rchild);    //递归访问右子树      }  }    void InOrder(BTNode *b)         //中序遍历的递归算法  {      if (b!=NULL)      {          InOrder(b->lchild);     //递归访问左子树          printf("%c ",b->data);  //访问根节点          InOrder(b->rchild);     //递归访问右子树      }  }    void PostOrder(BTNode *b)       //后序遍历的递归算法  {      if (b!=NULL)      {          PostOrder(b->lchild);   //递归访问左子树          PostOrder(b->rchild);   //递归访问右子树          printf("%c ",b->data);  //访问根节点      }  }    int main()  {      BTNode *p;      CreateBTNode(p,"A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))");      printf("先序:");      PreOrder(p);      printf("\n");       printf("中序:");      InOrder(p);      printf("\n");       printf("后序:");      PostOrder(p);      printf("\n");        DestroyBTNode(p);        return 0;        }  
运行结果:

  

 学习心得:

     ”实现二叉树的先序、中序、后序遍历的递归算法,因此学会利用遍历算法实现程序。

     

原创粉丝点击