(zhn)现在的位置Q?/strong> 跨考网频道考研报名正文

数据l构W三章设计题?qing)参考答案[2]_跨考网

最后更新时_(d)(x)2011-11-18 13:33:00
辅导评Q?a target="_blank" rel="nofollow">暑期集训 在线咨询
复习(fn)紧张Q焦头烂额?逆风轻袭Q来跨考秋季集训营Q帮你寻Ҏ(gu)Q定Ҏ(gu)Q?/span> 了解一?>

  1. 设从键盘输入一整数的序列:(x)a1, a2, a3Q…,an,试编写算法实玎ͼ(x)用栈l构存储输入的整敎ͼ?/span>ai?/span>-1Ӟ?/span>aiq栈Q当ai=-1Ӟ输出栈顶整数q出栈。算法应对异常情况(入栈满等Q给出相应的信息。?a target="_blank">南京航空航天大学 1998 ?/span> Q?/span>10分)(j)?/span>

  【参考答案?/span>

  #define maxsize 栈空间容?/span>

  void InOutS(int s[maxsize])

  //s是元素ؓ(f)整数的栈Q本法q行入栈和退栈操作?/span>

  {int top=0; //top为栈指针,定义top=0时ؓ(f)栈空?/span>

  for(i=1; i<=n; i++) //n个整数序列作处理?/span>

  {scanf(?/span>%d?/span>,&x); //从键盘读入整数序列?/span>

  if(x!=-1) // d的整C{于-1时入栈?/span>

  if(top==maxsize-1){printf(“栈?/span>\n?/span>);exit(0);}else s[++top]=x; //x入栈?/span>

  else //d的整数等?/span>-1旉栈?/span>

  {if(top==0){printf(“栈I?/span>\n?/span>);exit(0);} else printf(“出栈元素是%d\n?/span>,s[top--])Q?/span>}}

  }//法l束?/span>

  

  2. 设表辑ּ以字WŞ式已存入数组E[n]中,?/span>#’ؓ(f)表达式的l束W,试写出判断表辑ּ中括P‘(’和‘)(j)’)(j)是否配对?/span>C语言描述法Q?/span>EXYX(E); (注:(x)法中可调用栈操作的基本法?/span>) ?a target="_blank">北京U技大学 2001 ?ji)?/span>1 Q?/span>10分)(j)?/span>

  【参考答案?/span>

  [题目分析]判断表达式中括号是否匚wQ可通过栈,单说是左括号时进栈,xh退栈。退栈时Q若栈顶元素是左括号Q则新读入的x号与栈顶左括号就可消厅R如此下去,输入表达式结束时Q栈为空则正,否则括号不匹配?/span>

  int EXYX(char E[],int n)

  //E[]是有n字符的字W数l,存放字符串表辑ּQ以?/span>#’结束。本法判断表达式中圆括h否匹配?/span>

  {char s[30]; //s是一l数l,定w_大,用作存放括号的栈?/span>

  int top=0; //top用作栈顶指针?/span>

  s[top]= ?/span>#?/span>; //?/span>#’先入栈Q用于和表达式结束符号?/span>#’匹配?/span>

  int i=0; //字符数组E的工作指针?/span>

  while(E[i]!= ?/span>#?/span>) //逐字W处理字W表辑ּ的数l?/span>

  switch(E[i])

  {case?/span>(?/span>: s[++top]=?/span>(?/span>; i++ ; break ;

  case?/span>)?/span>: if(s[top]==?/span>(?/span>{top--; i++; break;}

  else{printf(“括号不配对?/span>);exit(0);}

  case?/span>#?/span>: if(s[top]==?/span>#?/span>){printf(“括号配?/span>\n?/span>);return (1);}

  else {printf(?/span> 括号不配?/span>\n?/span>);return (0);} //括号不配?/span>

  default : i++; //d其它字符Q不作处理?/span>

  }

  }//法l束?/span>

  [法讨论]本题是用栈判断括号匹配的特例Q只(g)查圆括号的配寏V一般情冉|(g)查花括号Q?/span>{’,?/span>}’)(j)、方括号Q?/span>[’,?/span>]’)(j)和圆括号Q‘(’,‘)(j)’)(j)的配寚w题。编写算法中如遇左括P?/span>{’,?/span>[’,或‘(’)(j)压入栈中,如遇xP?/span>}’,?/span>]’,或‘)(j)’)(j)Q则与栈元素比较,如是与其配对的括P左花括号Q左Ҏ(gu)h左圆括号Q,则弹出栈元素;否则Q就l论括号不配寏V在d表达式结束符?/span>#’时Q栈中若应只剩?/span>#’,表示括号全部配对成功Q否则表C括号不匚w?/span>

  另外Q由于本题只是检查括h否匹配,故对从表辑ּ中读入的不是括号的那些字W,一律未作处理。再有,假设栈容量够大Q因此入栈时未判断溢出?/font>

跨考考研评

班型 定向班型 开班时?/td> 高定?/td> 标准?/td> 评介绍 咨询
U季集训 冲刺?/td> 9.10-12.20 168000 24800?/td> 班面授+专业??+专业译֮向辅?协议加强评(高定?+专属规划{疑(高定?+_化答?复试资源(高定?+复试译֌(高定?+复试指导(高定?+复试班主?v1服务(高定?+复试面授密训(高定?+复试1v1(高定?
2023集训畅学 非定向(政英?数政qQ?/td> 每月20?/td> 22800?协议? 13800?/td> 先行阶在U课E?基础阶在U课E?强化阶在U课E?真题阶在U课E?冲刺阶在U课E?专业NҎ(gu)一对一评+班主dE督学服?全程规划体系+全程试体系+全程_化答?择校择专业能力定位体p?全年关键环节指导体系+初试加强?初试专属服务+复试全科标准班服?/td>

①凡本网注明“稿件来源:(x)跨考网”的所有文字、图片和韌频稿Ӟ版权均属北京学博教育咨询有限公司Q含本网和跨考网Q所有,M媒体、网站或个h未经本网协议授权不得转蝲、链接、{帖或以其他Q何方式复制、发表。已l本|协议授权的媒体、网站,在下载用时必须注明“稿件来源,跨考网”,q者本|将依法q究法律责Q?/p>

②本|未注明“稿件来源:(x)跨考网”的?囄Eg均ؓ(f)转蝲E,本网转蝲仅基于传递更多信息之目的Qƈ不意味着再通{载稿的观Ҏ(gu)证实其内容的真实性。如其他媒体、网站或个h从本|下载用,必须保留本网注明的“稿件来源”,q自负版权等法律责Q。如擅自改为“稿件来源:(x)跨考网”,本网依法追I法律责仅R?/p>

③如本网转蝲E涉?qing)版权等问题Q请作者见E后在两周内速来?sh)与跨考网联系Q电(sh)话:(x)400-883-2220