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

數據結構考研分類復習真題 第三章 答案[19]

2013-11-15 15:00:17  來源: 數據結構 

  )A和D是合法序列B和C 是非法序列

  ()設被判定的操作序列已存入一維數組A中

  int Judge(char A[])
  //判斷字符數組A中的輸入輸出序列是否是合法序列如是返回true否則返回false
  {i=;                //i為下標
  j=k=;              //j和k分別為I和字母O的的個數
  while(A[i]!=\) //當未到字符數組尾就作
  {switch(A[i])
  {caseI: j++; break; //入棧次數增
  caseO: k++; if(k>j){printf(序列非法\n)exit();}
  }
  i++; //不論A[i]是IO指針i均後移}
  if(j!=k) {printf(序列非法\n)return(false);}
  else {printf(序列合法\n)return(true);}
  }//算法結束

  [算法討論]在入棧出棧序列(即由IO組成的字符串)的任一位置入棧次數(I的個數)都必須大於等於出棧次數(即O的個數)否則視作非法序列立即給出信息退出算法整個序列(即讀到字符數組中字符串的結束標記\入棧次數必須等於出棧次數(題目中要求棧的初態和終態都為空)否則視為非法序列

[]  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  


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