博客 书店 交友
当前位置:首页 >> 新闻资讯 >> 专题 >> 自考 成考 >> 正文
站内搜索
今天是 欢迎访问中国教育网新版
北大自考数据结构上机考试复习总结
来源:自考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年有所增多
  • 山西:公办学校不得“变脸”高收费
  • 学校周边小食品多"三无产品" "一元食品"谨慎购买
  • 我该报考军校还是士官学校?(图)
  • 站内资讯搜索:  
    焦 点 事 件 人 物 评 谈
      
    热点专题
    ·以传教的热情和坚忍动力发…
    ·“世界华人艺术大会” 第十…
    ·国家教育事业十三五规划解…
    ·教育时评:“老师不敢批评…
    ·我国首个教育脱贫五年规划…
    ·评论:教育改革不能总被芜…
    ·湖北文理学院理工学院招聘…
    ·中国教育在东西文化激荡中…
    ·未来5年,广州各区中小学的…
    ·教育部连续12年开通高校学…
    最新快讯
    ·广西柳州市市场监督管理局…
    ·省教育厅要求培训机构教育…
    ·石家庄市教育局公布第三批…
    ·玉溪校外培训机构管理办法…
    ·伊州区多举措助力大学生就…
    ·大学生就业容易了,教育部…
    ·新时代民族地区高校大学生…
    ·国务院学位委员会修订印发…
    ·“职教高考”将建立,中职…
    ·教育厅新规之下,高考难上…
    热门推荐
        中国教育家协会 教协会员理事 香港监制
    京ICP证000045号-81
    中国香港特区政府注册登记号:18159887-030-01-20-3
    业务及合作热线:010-64803658
    信息发布:bj64803658@126.com欢迎合作