我试过把空格改成别的符号,比如逗号,好像也没有用啊?为什么

我的程序:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
#define OK 1
#define ERROR -1
#define OVERFLOW 0
#define TRUE 1
#define FALSE 0
#define MAX_TREE_SIZE 100
typedef int Status;
typedef int TElemType;

typedef struct BiTNode {
TElemType data;
struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;

Status CreateBiTree(BiTree &T) {
char ch;
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;
}

Status Visit(TElemType e)
{
printf("%c\n", e);
return OK;
}

Status PreOrderTraverse(BiTree T, Status (*Visit)(TElemType e)) {
if (T) {
if(Visit(T->data))
if (PreOrderTraverse(T->lchild, Visit))
if (PreOrderTraverse(T->rchild, Visit)) return OK;
return ERROR;
}else return OK;
}

int main()
{
BiTree T;
CreateBiTree(T);
printf("PreOrder is\n");
PreOrderTraverse(T, Visit);
system("pause");
return 0;
}
我基本是完全按照课本写的程序,可以编译运行,但是输入数据的时候不管输多少个空格似乎都没有办法结束这个步骤开始遍历,请问这是为什么?要如何修改?

噜噜哒
浏览 89回答 1
1回答

喵喵时光机

是你输入的有多少 子树就需要输入 多少个 结束符比如输入 1 后 就需要输入 两个 ' ' 结束输入两个11后 就需要输入 四个 ' ' 结束能懂点吗?自己试试以此类推 输入的根的个数 n 就需要 2的n次幂个结束符
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

数据结构