鱼C论坛

 找回密码
 立即注册
查看: 4247|回复: 2

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

[复制链接]
发表于 2012-12-20 20:15:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

#include<stdio.h>
#define num 100

typedef struct InFor
{
int No;
char Name[10];
int grade;
}InFor;

typedef struct BSTNode
{
InFor Stu[num];
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[num].No);
  printf("       ");
  printf("The student's name:");
  scanf("%s",&ST->Stu[num].Name);
  printf("   ");
  printf("please input the student's grade:");
  scanf("%d",&ST->Stu[num].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[num].key=key;
   s->lchild=NULL;
   s->rchild=NULL;
   flag=1;
   if(!p)
    ST=s;
    else
        {
         if(key>p->Stu[num].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[num].No)
   {
   p=q;q=q->rchild;
   }
   else
   {
   if(key<q->Stu[num].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[ke].NO);
                                   printf("姓名:%s  ",BT->Stu[ke].Name);
                                   printf("分数:%d\n",BT->Stu[ke].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);
}
}

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-4-24 19:38:31 | 显示全部楼层
来看看呵呵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-6-8 13:59:26 | 显示全部楼层
无回帖,不论坛,这才是人道。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 17:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表