数据结构实验三.docVIP

  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文档。上传文档
查看更多
《数据结构》实验报告 三 实验目的 掌握解栈和队列的特性、基本概念。熟练掌握栈和队列的基本操作和应用。 实验内容 调试运行程序[实验三调试程序].txt,并解释该程序的功能! 上机完成教材P106页【上机练习3】第1题。 【给出以上实验内容的正确的源代码程序和结果】 1.# include stdio.h #include malloc.h # define maxlen 20 typedef char elemtype; typedef struct sqstack { elemtype data [maxlen]; int top; } stack; void init(stack *st) /*初始化栈*/ { st-top=0; } int push (stack *st,elemtype x) /*入栈*/ { if (st-top= =maxlen-1) { printf(“栈上溢出\n”); return 0; } else { st-top++; st-data[st-top]=x; return 1; } } int pop(stack *st,elemtype *x) /*退栈*/ { if (st-top= = 0) { printf(“栈下溢出\n”); return 0; } else { *x=st-data[st-top]; st-top--; return 1; } } int empty(stack *st) /*判断栈是否为空栈*/ { if (st-top= =0) return 1; else return 0; } int correct(char *str) { stack st; char x; int I,ok=1; init(st); for (I=0;str[I]!=’\0’;I++) { switch(str[I]) { case’(‘:push(st,’(‘);break; case’[‘:push(st,’[‘];break; case’{‘:push(st,’{‘};break; case’)‘:if(!(pop(st,x)x= =’(‘)) ok=0; break; case’]‘:if(!(pop(st,x)x= =’[’]) ok=0; break; case’}‘:if(!(pop(st,x)x= =’{‘}) ok=0; break; } if(!ok) break; } if (empty(st) ok) return 1; else return 0; } void main() { char *str; str=(char *)malloc(100*sizeof(char)); printf(“str:”); scanf(“%c”,str); if(correct(str)) printf(“表达式括号匹配\n”); else printf(“表达式括号不匹配\n”); } 作用:判断表达式括号是否匹配 2.#includestdio. h #includemalloc. h #define MaxLen 100 typedef struct node { char data; struct node* next; }cnode; cnode* create(char s[]) { int I = 0; cnode* h, * p, * r; while (s[I] != \0) { p = (cnode*)malloc(sizeof(cnode)); p-data = s[I]; p-next = NULL; if(I == 0); { h = p; r-next = NULL; } else { r-next = p; r = p; } I++; } return h; } int judge(cnode* h) { char st[MaxLen]; int top = 0; cnode* p = h; while (p != NULL) { st[top] = p-data; top++; p = p-next; } p = h; while (p != NULL) { top--; if (p-data == st[top]) p = p-next; else brea

文档评论(0)

173****9247 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档