麻烦大佬们看看问题到底出在哪??
这是创建一个完整的树,实现输入和输出,可问题是为什么就是输出不了呢,编译的时候都是没有错误的,看了好几遍,也没有发现问题的所在,求求大佬们看下给出答案吧{:10_266:} {:10_266:}#include<stdio.h>
#include<stdlib.h>
typedef int ElementType;
typedef struct TNode
{
ElementType data;
struct TNode *leftchild;
struct TNode *rightchild;
}TNode,*BinTree;
void CreatBinTree(BinTree T)
{
ElementType num;
scanf("%d",&num);
if(num==0)
{
T=NULL;
}
else
{
T=(TNode *)malloc(sizeof(TNode));
T->data=num;
CreatBinTree(T->leftchild);
CreatBinTree(T->rightchild);
}
}
void PreorderTraverse(BinTree T)
{
if(T)
{
printf("%d\n",T->data);
PreorderTraverse(T->leftchild);
PreorderTraverse(T->rightchild);
}
}
int main()
{
BinTree T;
CreatBinTree(T);
PreorderTraverse(T);
return 0;
} 这玩笑开不得啊 #include<stdio.h>
#include<stdlib.h>
typedef int ElementType;
typedef struct TNode {
ElementType data;
struct TNode *leftchild;
struct TNode *rightchild;
} TNode, *BinTree;
BinTree CreatBinTree() {
BinTree T;
ElementType num;
scanf("%d", &num);
if (num == 0) {
return NULL;
} else {
T = malloc(sizeof (TNode));
T->data = num;
T->leftchild = CreatBinTree();
T->rightchild = CreatBinTree();
}
return T;
}
void PreorderTraverse(BinTree T) {
if (T) {
printf("%d\n", T->data);
PreorderTraverse(T->leftchild);
PreorderTraverse(T->rightchild);
}
}
int main() {
BinTree T = CreatBinTree();
PreorderTraverse(T);
return 0;
}
好像忘了释放内存..... 最终的执念 发表于 2021-11-16 21:25
好像忘了释放内存.....
哈哈,还是感谢回答,原因我已经找到了,是函数里面指针的问题
页:
[1]