📄 6.2.c
字号:
#include<stdio.h>
#define NULL 0
struct BiTNode
{int data;
struct BiTNode *lchild;
struct BiTNode *rchild;
};
struct BiTNode *T;
struct BiTNode *p;
int SearchBST(struct BiTNode *T,int e,struct BiTNode *f)
{if(!T)
{p=f;
return 0;
}
else
if(e==T->data)
{p=T;
return 1;
}
else
if(e<T->data)
return SearchBST(T->lchild,e,T);
else
return SearchBST(T->rchild,e,T);
}
int InsertBST(int e)
{struct BiTNode *s;
if(!SearchBST(T,e,NULL))
{s=(struct BiTNode *)malloc(sizeof(struct BiTNode));
s->data=e;
s->lchild=s->rchild=NULL;
if(!p)
T=s;
else
if(e<p->data)
p->lchild=s;
else
p->rchild=s;
return 1;
}
else
return 0;
}
void CreatBST()
{int e;
T=p=NULL;
printf("input data! when input 32767 to break.\n");
while(e!=32767)
{scanf("%d",&e);
InsertBST(e);
}
}
void main(void)
{int e;
CreatBST();
printf("input data to search.\n");
scanf("%d",&e);
if(SearchBST(T,e,NULL))
printf("true!\n%d\n",p->data);
else
{printf("false!\n");
if(InsertBST(e))
printf("insert success!\n");
}
getchar();
getchar();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -