二叉树的非递归遍历实习报告.docxVIP

  • 16
  • 0
  • 约2.78千字
  • 约 4页
  • 2017-08-16 发布于浙江
  • 举报
二叉树的非递归遍历实习报告

实习报告题目:建立一棵二叉树,要求分别用递归和非递归方法实现二叉树的先序、中序和后序遍历班级:0101019姓名:陈圆学号:2010210630题目分析首先是建立一棵二叉树,定义一个结点:BiTNode,存储左右子树的指针还有根结点的信息。接着就用递归的方法建立一棵二叉树。先分析用递归方法来遍历二叉树,这个很容易实现,就是利用函数递归的方法来实现就可以了。比较困难的是二叉树非递归方法的遍历,利用栈结构的“后进先出”的特点,把树的根结点压入栈中,然后遍历左右子树,左右子树依次入栈,然后出栈来实现非递归遍历。解决问题递归遍历二叉树:算法:Status CreateBiTree(BiTree *T){//按先序次序输入二叉树中结点的值(一个字符),空格字符表示空树//构造二叉链表表示的二叉树Tcharch;scanf(%c,ch);if(ch == ) *T = NULL;else{if(!(*T = (BiTNode *)malloc(sizeof(BiTNode)))) exit(OVERFLOW);(*T)-data = ch;CreateBiTree((*T)-lchild);CreateBiTree((*T)-rchild);}return OK;}//CreateBiTreeStatus PreOrderTraverse(BiTreeT,Status (* Visit)(T

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档