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

刚学数据结构有个程序调不出来

本帖最后由 番茄 于 2013-6-30 14:46 编辑

#include<stdio.h>
#define num 100

typedef struct InFor
{
int No;
char Name;
int grade;
}InFor;

typedef struct BSTNode
{
InFor Stu;
struct BSTNode *lchild,*rchild;
}BSTNode,*BSTree;
BSTree ST;

BSTree InitBSTree(BSTree ST)
{
if(!sizeof(ST))
{
printf("初始化失败。!!");
}
else
printf("初始化成功!!可以继续操作。");
return ST;
}

void CreateBSTree(BSTree ST,int n)
{
      int i;
      printf("Please input the student's information:");
for(i=1;i<=n;i++)
{
printf("Please input the number:");
scanf("%d",&ST->Stu.No);
printf("       ");
printf("The student's name:");
scanf("%s",&ST->Stu.Name);
printf("   ");
printf("please input the student's grade:");
scanf("%d",&ST->Stu.grade);
printf("\n");
InsertNode(BT,key);
}
}
BSTree InsertNode(BSTree ST,int key)
{
BSTree p=ST,q,s;
int flag=0;
if(!Search(ST,p,q,key))
{
   s=(BSTree)malloc(sizeof(BSTNode));
   s->Stu.key=key;
   s->lchild=NULL;
   s->rchild=NULL;
   flag=1;
   if(!p)
    ST=s;
    else
      {
         if(key>p->Stu.key)
          p->rchild=s;
          else
         p->lchild=s;
      }
}
return flag;
}

int Search(BSTtree ST,BSTree p,BSTree q,int key)
{
int flag=0;
q=ST;
while(q)
{
   if(key>q->Stu.No)
   {
   p=q;q=q->rchild;
   }
   else
   {
   if(key<q->Stu.No)
      {
          p=q;q=q->lchild;
          }
          else
          {
          flag=1;break;
          }
      }
   }
   return flag;
}



void main()
{
int ke,s,n;
char pan;
BSTtree ST,BSTree p,BSTree q;
int num=1;
ST=InitBSTree(ST);
while(num==1)
{
printf("请输入你要的操作:No1 创建数据表。No2 对创作的数据进行查找。\n");
scanf("%d",&n);
switch(n)
{
    case 1:    printf("请输入你要的你要输入学生的人数:");
                     scanf("%d",n)
                     CreateBSTree(BSTree ST,n);
                           break;                           
    case 2:    printf("请输入你要的查找学生的学号:");
                   scanf("%d",&ke);
                           s=search_SST(ST,ke,nu);
                           if(s)
                           {
                                 printf("你要的学生信息是:");
                                 printf("学号:%5d",BT->Stu.NO);
                                 printf("姓名:%s",BT->Stu.Name);
                                 printf("分数:%d\n",BT->Stu.Grade);

                           }
                           else
                           {
                                 printf("查找失败,无信息显示!!是否插入新的数据?y是,任意键退出\n");
                                 scanf("%c",&pan);
                                 if(pan==y)
                                 {
                                           InsertNode(BSTree ST,int key);
                                 }
                           else break;
                              }break;
      default: break;
}
printf("是否继续?No1 继续   No2 退出");
scanf("%d",&num);
}
}

}

落叶无痕 发表于 2013-4-24 19:38:31

来看看呵呵

lsh華 发表于 2013-6-8 13:59:26

无回帖,不论坛,这才是人道。
页: [1]
查看完整版本: 刚学数据结构有个程序调不出来