鱼C论坛

 找回密码
 立即注册
查看: 3770|回复: 4

菜鸟求大神解决二叉树遍历问题

[复制链接]
发表于 2012-3-3 23:45:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 番茄 于 2014-3-20 00:54 编辑
  1. /************************本遍历操作实现为中序遍历*************************/


  2. #include<stdio.h>
  3. #include<malloc.h>


  4. struct bitnode //定义二叉树
  5. {
  6. char data;
  7. struct bitnode *lchild,*rchild;

  8. };

  9. void preordertraverse(struct bitnode *t);
  10. struct bitnode *create(struct bitnode *root);
  11. void visit(struct bitnode *e);
  12. struct bitnode *root;


  13. int main()
  14. {
  15. struct bitnode *pt;
  16. pt=create(root);
  17. preordertraverse(pt);


  18. return 0;

  19. }


  20. /**************************创建二叉树***************************************/

  21. struct bitnode *create(struct bitnode *root)
  22. {
  23. struct bitnode *p; //定义节点变量
  24. int n;
  25. root=NULL; //根节点初始化



  26. p=(struct bitnode *)malloc(sizeof(bitnode)); //输入根节点信息
  27. if(!(p=(struct bitnode *)malloc(sizeof(bitnode))))
  28. goto end;
  29. else
  30. {
  31. printf("请输入节点信息 : \n");
  32. scanf("%d",p->data);
  33. root=p;

  34. printf("请输入执行命令 : \n 1:继续 ! 2:结束!"); //控制是否结束构建
  35. scanf("%d",&n);
  36. if(n==2) goto end;
  37. else
  38. {
  39. create(p->lchild); //递归调用create函数实现左边,右边的子树的遍历
  40. create(p->rchild);
  41. }


  42. }

  43. end:
  44. return root;


  45. }



  46. /************************定义visit函数***********************/

  47. void visit(struct bitnode *e)
  48. {
  49. printf("地址 : %o,data : %d, left pointer : %o, right pointer : %o\n",e,e->data,e->lchild,e->rchild);

  50. }

  51. /************************定义中序遍历函数**********************************/
  52. void preordertraverse(struct bitnode *t)
  53. {
  54. if(t)
  55. {
  56. visit(t);
  57. preordertraverse(t->lchild);
  58. preordertraverse(t->rchild);

  59. }


  60. }
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-14 13:14:56 | 显示全部楼层
递归算法最简单的
换下输出位置即可
非递归的
左孩子是个循环
前中都很简单
后有点难 自身要压两次栈
看看一些数据结构书吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-4-26 12:31:27 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2014-3-15 19:44:04 | 显示全部楼层
{:2_34:}!!!!!!!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-16 10:32:45 | 显示全部楼层
看看,大神
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 18:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表