伪装不出的笑 发表于 2012-12-20 20:20:20

数据结构的 调不出来,求助

#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);
}
}

落叶无痕 发表于 2013-4-24 19:40:48

来看看呵呵
页: [1]
查看完整版本: 数据结构的 调不出来,求助