二叉树的基本操作及遍历为什么运行无结果啊

1970-01-01 08:00发布

#include<stdio.h> #include<string> #include<iostream> typedef int Status; #define OK 1; #define ERROR 0; typedef struct BiTNode {     char data;  //数据域;Type: 用户定义数据类型     struct BiTNode *Lchild;  //左指针域     struct BiTNode *Rchild;  //右指针域 } BiTNode, *BiTree;  Status IniBiTree(BiTree &T) {     //构造空树     T = (BiTNode *)malloc(sizeof(BiTNode));     if (!T)return ERROR;//构造失败     T->Lchild = T->Rchild = NULL;     return OK; } void CreateBiTree(BiTree &T) {     //按先序次序输入二叉树中结点的值(一个字符),#字符表示空数,     //构造二叉链表表示的二叉树T。     char ch;     scanf_s("%c",&ch,2);     if (ch == 
3条回答
小硕的 - 这个人很懒,什么都没留下
1楼 · 2016-11-01 11:52.采纳回答

先调整一下代码格式。

mishen - whatsns产品经理
2楼-- · 2016-11-01 11:55

后序遍历写错了。应该是:

最关键的是,构造二叉树写错了,你应该传递的是根节点的二级指针,不然相当于拷贝传递根节点指针,是没法修改根节点指针内容的。想要修改根节点指针指向的内容,需要传递指向根节点指针的指针。可以参考我对二叉树的总结文章:http://blog.csdn.net/wzy_1988...

一周热门 更多>