熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> 數據結構 >> 正文

北大自考數據結構上機考試復習總結[3]

2013-11-15 15:41:11  來源: 數據結構 
編一C程序它能讀入一串(n個)整數(以為結束標記)並判斷第個整數在後(n)個整數中出現的次數再輸出該次數(輸入時兩個相鄰的整數用空格隔開)

  (注程序的可執行文件名必須是 eexe存於你的賬號或其debug目錄下)

  數據結構練習題

   編一C程序它能根據輸入的二叉樹中序和後序序列來構造該二叉樹並能輸出該二叉樹的前序序列和該二叉樹的度為的結點的個數並能判斷該二叉樹是否為二叉排序樹(若是輸出Yes;否則輸出No)(輸入次序是表示中序序列的字母串表示後序序列的字母串)

  (注程序的可執行文件名必須是 eexe存於你的賬號或其debug目錄下)

  #include

  #include

  #include

  void exit(int);

  #define MAX

  typedef struct node{

  char d;

  struct node *lchild*rchild;

  }Tnode;

  void MKTree(char in[]int isint iechar post[]int postsint posteTnode **r)

  {

  int i;

  if(is< p>

  *r=NULL;

  else{

  *r=malloc(sizeof(Tnode));

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

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

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

  {

  MKTree(inisipostpostsposts+iis&(*r)>lchild);

  MKTree(ini+iepostposts+iisposte&(*r)>rchild);

  break;

  }

  if(i>ie){

  printf(Errorinput contain an error !\n);

  exit();

  }

  }

  }

  void BST(char in[]int isint ie)

  {

  int i;

  if(is==ie)

  printf(yes\n);

  else

  {

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

  {

  if(in[i]< p>

  continue;

  else

  break;

  }

  if(i==ie)

  printf(YES\n);

  else

  printf(NO\n);

  }

  }

  void preorder(Tnode *r)

  {

  if(r)

  {

  printf(%cr>d);

  preorder(r>lchild);

  preorder(r>rchild);

  }

  }

  int seconde(Tnode *r)

  {

  if(r==NULL)

  return ;

  else

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

  return ;

  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(instrlen(in)poststrlen(post)&r);

  printf(the preorder is as follows\n);

  preorder(r);

  printf(\n there are %d seconde in the tree \nseconde(r));

  printf(if the tree is BST\n);

  BST(instrlen(in));

  }

  編一C程序它能讀入一串整數(以為結束標記)再以與輸入次序相反的次序輸出這串整數(輸入出時兩個相鄰的整數用空格隔開)

  (注程序的可執行文件名必須是 eexe存於你的賬號或其debug目錄下)

  #include

  #define max

  main()

  {

  int a[max];

  int n=id;

  printf(please enten tne number\n);

  do{

  scanf(%d&d);

  if(d==)

  break;

  n++;

  a[n]=d;

  }while();

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

  printf(%da[i]);

  printf(\n);

  }

  

[]  []  []  []  


From:http://tw.wingwit.com/Article/program/sjjg/201311/23798.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.