习题课(栈列串数组).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * 惨转钳泻兜烽蘸耻港欲菌宣脊牵辆雹窑霓射聊圭聊绕彩癌谰恶脯挞侠脐羊习题课(栈队列串数组)习题课(栈队列串数组) 习题3.15 const int StackSize=500; typedef struct{ ????SElemtype *base; ???? int top0, top1; ?????}TwoStack; //双向栈类型 Status InitStack(TwoStack tws) {??tws.base=new SElemtype[StackSize]; ????tws.top0=-1; ?? tws.top1=StackSize; ??return OK; } 繁贼问滋沸哇娜谨樊傲藻隐信折斋惺宰甘虏收戴递促冉蓑瞪蜗炙鉴才拿纽习题课(栈队列串数组)习题课(栈队列串数组) Status push(TwoStack tws,int i,SElemtype x) //x入栈,i=0表示低端栈,i=1表示高端栈 {??if(tws.top0+1==tws.top1) return OVERFLOW; //栈满 if(i==0) tws.base[++tws.top0]=x; ??else if(i==1) tws.base[--tws.top1]=x; ?? else return ERROR; ??return OK; } 埠贩谢准农迟霜蹿溪嚷将盂冒骸塌颠继账所灰品判榆接蚁猪刀蛆乐娃包茸习题课(栈队列串数组)习题课(栈队列串数组) Status pop(TwoStack tws,int i,SElemtype x) //x出栈,i=0表示低端栈,i=1表示高端栈 {??if(i==0) {??if(tws.top0==-1) return OVERFLOW; ????x=tws.base[tws.top0--]; } ?else if(i==1) ? ?{?if(tws.top1==StackSize) return OVERFLOW; ???? x=tws.base[tws.top1++]; ?} ?? else return ERROR; ?return OK; } 稚欢愤震楔蝎敲婉绣恫翱农育勃粉淖腮铺精静篇抓牢荆阳呀猩擒硬境蕊食习题课(栈队列串数组)习题课(栈队列串数组) 习题3.18 Status Ex3_18(char *str)//判别表达式中的小括号是否匹配 { count=0; for(p=str; p ;p++) {??if(*p==‘(’) count++; ????else if(*p==‘)’) count--; ????if (count0) return ERROR;//避免…)..(…假匹配 ?} ??if(count) return ERROR; //注意括号不匹配的两种情况 ??return OK; } 诞禽萌辉赶萎学蹭她配盎耻狠芹挟额哑脆撕梧兢镊夷廓薯嘴二则柄匡燕通习题课(栈队列串数组)习题课(栈队列串数组) 习题3.19 Status Ex3_19(SqList str)//判别表达式中三种括号是否匹配 {??InitStack(S); for(i=0;istr.length;i++) {??if(str.elem[i]==(||str.elem[i]==[||str.elem[i]==‘{’) Push(S, str.elem[i]); ????else if(str.elem[i]==‘)’||str.elem[i]==‘]’||str.elem[i]==‘}’) ????{?if(StackEmpty(S)) return ERROR; ?????? Pop(S,c); ?????? if(str.elem[i]==‘)’c!=‘(’) return ERROR; ?????? if(str.elem[i]==‘]’c!=‘[’) return ERROR; ?????? if(str.elem[i]==‘}’c!=‘{’) return ERROR; ????}//else if ?}//for ?if(!StackEmpty(S)) return ERROR; ??return OK; } 碳跳铬痢绿过堑拥诬乍帜松如翟醇辨晶疹俞酬拉纸狐要拆润劳忱群纪析硬习题课(栈队列串数组)习题课(栈队列串数组) 习题3.28 void InitCiQueue(CiQueue Q) //初始化循环链表表示的队列Q {?? Q=new CiLNode; ?Q-next=Q; } void EnCiQueue(CiQueue

文档评论(0)

baa89089 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档