|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<malloc.h>
typedef struct BSNode
{
int elem;
struct BSNode *lc,*rc;
}BSNode,*BSTree;
BSTree ST;
void InitBSTree(BSTree ST)
{
ST=(BSTree )malloc(sizeof(BSNode));
ST->elem=-111;
ST->lc=ST->rc=NULL;
printf("创建成功!!");
}
int Search(BSTree ST,int key)
{
int flag=0;
while(ST)
{
if(key>ST->elem)
{
ST->rc;
}
else
{
if(key<ST->elem)
{
ST->lc;
}
else
{
flag=1;
printf("%d",ST->elem);
}
}
}
return flag;
}
int InsertNode(BSTree ST,int key)
{
BSTree p=ST,q,s;
int flag=0;
if(!Search(ST,key))
{
s=(BSTree )malloc(sizeof(BSNode));
s->elem=key;
s->lc=NULL;
s->rc=NULL;
flag=1;
if(ST)
ST=s;
else
{
if(key>ST->elem)
ST->rc=s;
else
ST->lc=s;
}
}
return flag;
}
void CreateBSTree(BSTree ST,int n)
{
int i;
BSTree r,BT;
for(i=1;i<=n;i++)
{
scanf("%d",&r->elem);
InsertNode(BT,r->elem);
}
}
void main()
{
BSTree ST;
int a,b,k,d,g,c=1;
char N,n;
InitBSTree(ST);
printf("请输入你要查找的数字");
scanf("%d",&k);
Search(ST,k);
if(a)
{
printf("查找不存在");
}
printf("你是否想插入数字 是请输入1 否着输入0\n");
scanf("%d",&c);
if(c)
{printf("请输入你想插入的数字");
b=InsertNode(ST,k);}
else
;
if(a)
{printf("元素插入失败");}
else
printf("元素插入成功!!");
printf("是否进行二叉树构造?1是,任意键否");
scanf("%d",&d);
if(d==1)
{
printf("请输入你要的元素个数");
scanf("%d",&g);
CreateBSTree(ST,g);
}
}
|
|