博客 书店 交友
当前位置:首页 >> 新闻资讯 >> 专题 >> 自考 成考 >> 正文
站内搜索
今天是 欢迎访问中国教育网新版
北大自考数据结构上机考试复习总结
来源:自考365.COM     2007-3-27 17:18:00
 
      数据结构练习题4

  1. 编一C程序,它能根据输入的二叉树中序和后序序列来构造该二叉树,并能输出该二叉树的前序序列和该二叉树的度为2的结点的个数并能判断该二叉树是否为二叉排序树(若是输出Yes;否则输出No)。(输入次序是:表示中序序列的字母串、表示后序序列的字母串)。

  (注:程序的可执行文件名必须是 e1.exe,存于你的账号或其debug目录下。)

  #include

  #include

  #include

  void exit(int);

  #define MAX 100

  typedef struct node{

  char d;

  struct node *lchild,*rchild;

  }Tnode;

  void MKTree(char in[],int is,int ie,char post[],int posts,int poste,Tnode **r)

  {

  int i;

  if(is

  *r=NULL;

  else{

  *r=malloc(sizeof(Tnode));

  (*r)->d=post[poste];

  for(i=is;i<=ie;i++)

  if(post[poste]==in[i])

  {

  MKTree(in,is,i-1,post,posts,posts+i-is-1,&(*r)->lchild);

  MKTree(in,i+1,ie,post,posts+i-is,poste-1,&(*r)->rchild);

  break;

  }

  if(i>ie){

  printf(“Error:input contain an error !\n”);

  exit(9);

  }

  }

  }

  void BST(char in[],int is,int ie)

  {

  int i;

  if(is==ie)

  printf(“yes\n”);

  else

  {

  for(i=is;i<=ie;i++)

  {

  if(in[i]

  continue;

  else

  break;

  }

  if(i==ie)

  printf(“YES\n”);

  else

  printf(“NO\n”);

  }

  }

  void preorder(Tnode *r)

  {

  if(r)

  {

  printf(“%c”,r->d);

  preorder(r->lchild);

  preorder(r->rchild);

  }

  }

  int seconde(Tnode *r)

  {

  if(r==NULL)

  return 0;

  else

  if((r->lchild)!=NULL&&(r->rchild)!=NULL)

  return 1;

  else

  return seconde(r->lchild)+seconde(r->rchild);

  }

  void main()

  {

  Tnode *r;

  char post[MAX],in[MAX];

  printf(“input inorder and postorder !\n”);

  gets(in);

  gets(post);

  MKTree(in,0,strlen(in)-1,post,0,strlen(post)-1,&r);

  printf(“the preorder is as follows:\n”);

  preorder(r);

  printf(“\n there are %d seconde in the tree \n”,seconde(r));

  printf(“if the tree is BST:\n”);

  BST(in,0,strlen(in)-1);

  }

  2.编一C程序,它能读入一串整数(以-9999为结束标记),再以与输入次序相反的次序输出这串整数(输入、出时,两个相邻的整数用空格隔开)。

  (注:程序的可执行文件名必须是 e2.exe,存于你的账号或其debug目录下。)

  #include

  #define max 10000

  main()

  {

  int a[max];

  int n=0,i,d;

  printf(“please enten tne number:\n”);

  do{

  scanf(“%d”,&d);

  if(d==-9999)

  break;

  n++;

  a[n]=d;

  }while(9);

  for(i=n;i>0;i——)

  printf(“%4d”,a[i]);

  printf(“\n”);

  }

  数据结构练习题5

  1. 编一C程序,它能读入一个大写英文字母串(字母个数不多于100,字母两两不同),并构造以这些字母为关键字的二叉排序树,再输出该二叉排序树的后序序列和页结点个数。

  (注:程序的可执行文件名必须是 e1.exe,存于你的账号或其debug目录下,否则无成绩)

  2. 编一C程序,它能读入两组整数(每组整数都以-9999为结束标记,-9999不算在内。个数都不大于1000),并以从小到大的次序输出既在第一组整数中也在第二组整数中的所有整数(同一个整数不能输出两次)。(输入时,两个相邻的整数用空格隔开)。

  (注:程序的可执行文件名必须是 e2.exe,存于你的账号或其debug目录下,否则无成绩)

  #include

  void paixu(int r[],int n)

  {

  int i,j,k;

  int exchange;

  for(i=0;i<=n;i++)

  {

  exchange=0;

  for(j=n-1;j>=i;j——)

  if(r[j+1]

  {

  k=r[j+1];

  r[j+1]=r[j];

  r[j]=k;

  exchange=1;

  }

  if(!exchange)

  break;

  }

  }

  int jiaoji(int m[],int n[],int l[],int countaa,int countbb)

  {

  int w,x,y;

  int i=0,j=0,k=0;

  for(w=0;w<=countaa;w++)

  {

  for(x=w+1;x<=countaa;x++)

  {

  if(m[w]==m[x])

  {

  countaa——;

  for(y=x;y<=countaa;y++)

  {

  m[y]=m[y+1];

  }

  x——;

  }

  }

  }

  while(i<=countaa)

  {

  for(j=0;j<=countbb;j++)

  {

  if(m[i]==n[i])

  {

  l[k]=m[i];

  k++;

  break;

  }

  }

  i++;

  }

  return k;

  }

  void main()

  {

  int a[1000],b[1000],c[2000];

  int excange=0,i,countA,countB,countC;

  printf(“请输入数组a: \n”);

  for(i=0;i<=1000;i++)

  {

  scanf(“%d”,&a[i]);

  if(a[i]==-9999)

  break;

  }

  countA=i-1;

  paixu(a,countA);

  printf(“请输入数组b: \n”);

  for(i=0;i<=1000;i++)

  {

  scanf(“%d”,&b[i]);

  if(b[i]==-9999)

  break;

  }

  countB=i-1;

  paixu(b,countB);

  countC=jiaoji(a,b,c,countA,countB);

  printf(“\n\n”);

  for(i=0;i<=countC-1;i++)

  printf(“%d”,c[i]);

  printf(“\n”);

<<上一页     
■相关链接  
  • 考生口述:我的自考流水账(我的经历和学习方法)
  • 面对自考"三怕""三不怕"
  • 全国2007年1月高教自考犯罪学(一)试题
  • 教育部门正在制定相关办法,加强中小学写字教学
  • 撩开性教育的“面纱”
  • 教育部:2006年学生食物中毒事故比2005年有所增多
  • 山西:公办学校不得“变脸”高收费
  • 学校周边小食品多"三无产品" "一元食品"谨慎购买
  • 我该报考军校还是士官学校?(图)
  • 站内资讯搜索:  
    焦 点 事 件 人 物 评 谈
    热点专题
    ·随州农行开展安全教育月活动
    ·培养良好生活习惯 幼儿教育…
    ·中国出现这样的教育理念与…
    ·落实科学发展观推进国防教…
    · 09年考研英语强化阶段复习…
    · 考研备考最后四个月 黄金…
    ·从三鹿奶粉事件看考研复习
    ·青鸟打开就业出路:高考失意…
    ·09年重庆高考加分政策调整…
    ·2008年成人高考复习最后一…
    最新快讯
    ·明年中国将招收4700名少数…
    ·广州10万人参加成人高考 将…
    ·学生冬季长跑要在确保学生…
    ·教育部要求:高校每400名大…
    ·钱永健获“诺奖”与钱学森…
    ·留学海外:文化“吸氧”比…
    ·从1978年至2007年底中国出…
    ·福建移动“求职通”方便广…
    ·成功签约率高 校园招聘会成…
    ·方法创新 考研状元讲述12点…
    热门推荐
    中国教育家协会 教协会员理事 香港监制
    中华人民共和国 京ICP备08005247号
    香港通讯地址:香港兴发街邮政局38062号信箱  中国香港特区政府注册登记号:18159887-030-01-02-5
    业务及合作热线:010-64803658 客服电话:010-64803331
    信息发布:bj64803331@126.com 欢迎合作:cn13801018949@hotmail.com