主题:[讨论]求解一道二叉树的程序???
#include<stdio.h>
#include<stdlib.h>
typedef char datatype;
typedef struct node
{
datatype data;
struct node *lchild,*rchild;
}bintnode;
typedef bintnode *bintree;
void createbintree(bintree *t)
{
char ch;
if ((ch=getchar())==' ')
*t=NULL;
else {
*t=(bintnode *)malloc(sizeof(bintnode));
(*t)->data=ch;
createbintree(&(*t)->lchild);
createbintree(&(*t)->rchild);
}
}
bintree locate(bintree t, datatype x)
{
bintree p;
if (t==NULL) return NULL;
else
if (t->data==x) return t;
else
{ p=locate(t->lchild,x);
if (p) return p;
else return locate(t->rchild,x);
}
}
main()
{ bintree root,p;
datatype x;
createbintree(&root);
getchar();
x=getchar();
p=locate(root,x);
if (p) printf("found!");
else printf("no found!") ;
这个程序运行时输入空格再回车就会出现"no found",但是无论输入什么都不能显示"found",我想知道输入什么才会有"found"出现呢?
这个程序是不是有什么错误啊???
星期二就要检查了....
各位高手帮忙看看啊.....
拜托了!!!!
#include<stdlib.h>
typedef char datatype;
typedef struct node
{
datatype data;
struct node *lchild,*rchild;
}bintnode;
typedef bintnode *bintree;
void createbintree(bintree *t)
{
char ch;
if ((ch=getchar())==' ')
*t=NULL;
else {
*t=(bintnode *)malloc(sizeof(bintnode));
(*t)->data=ch;
createbintree(&(*t)->lchild);
createbintree(&(*t)->rchild);
}
}
bintree locate(bintree t, datatype x)
{
bintree p;
if (t==NULL) return NULL;
else
if (t->data==x) return t;
else
{ p=locate(t->lchild,x);
if (p) return p;
else return locate(t->rchild,x);
}
}
main()
{ bintree root,p;
datatype x;
createbintree(&root);
getchar();
x=getchar();
p=locate(root,x);
if (p) printf("found!");
else printf("no found!") ;
这个程序运行时输入空格再回车就会出现"no found",但是无论输入什么都不能显示"found",我想知道输入什么才会有"found"出现呢?
这个程序是不是有什么错误啊???
星期二就要检查了....
各位高手帮忙看看啊.....
拜托了!!!!