后缀表达式 逆波兰式 栈 C语言 C++ 数据结构 链表 课程设计(国外英文资料).docVIP

后缀表达式 逆波兰式 栈 C语言 C++ 数据结构 链表 课程设计(国外英文资料).doc

  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文档。上传文档
查看更多
后缀表达式逆波兰式栈C语言C数据结构链表课程设计(国外英文资料)

后缀表达式 逆波兰式 栈 C语言 C++ 数据结构 链表 课程设计(国外英文资料) #包括 stdio. h #包括运算符。” #包括断言。” #包括程序。” #包括是。H 无效的后缀(中缀表达式字符串); #定义尺寸100 typedef struct { 字符数据[大小]; 栈的顶部; }栈; typedef struct { 前、后整数; 字符数据[大小]; }队列; / ***********栈的功能实现********************* / 初始化栈/ * * / 无效init_stack(堆栈的) { 顶部= 0; } 测试栈是否为空/ * * / 国际empty_stack(堆栈的) { 返回(顶部= 0); } 测试栈是否已满/ * * / 国际full_stack(堆栈的) { 返回(顶部= =大小); } 压栈/ * * / 虚推(堆栈,字符x) { 如果(full_stack(S)) { printf(“栈溢出\n”); } 其他的 { s; +(顶部); } } 出栈/ * * / 字符弹出(堆栈) { 如果(empty_stack(S)) { printf(“栈是空的\n”); } 其他的 { ——(顶部); “返回数据”顶部; } 返回0; } / ***************队列的功能实现********************** / 初始化队列/ * * / 虚空INITQ(队列* q) { q =计数= 0; q =前面= 0; q =后置= 1; } 测试队列是否为空/ * * / 国际emptyq(队列* q) { 返回(q =计数= 0); } 测试队列是否已满/ * * / 国际fullq(队列* q) { 返回(q =计数=大小); } 向队列插入一个元素/ * * / 无效insertq(char,队列* q) { 如果(fullq(Q)) { printf(“队列溢出\n”); } 其他的 { q =后置(q +后置+ 1)%大小; q; q +计数+; } } 移除一个元素并讲它的值返回/ * * / 焦removeq(队列* q) { 字符Y; 如果(emptyq(Q)) { printf(“队列是空的\n”); } 其他的 { y =数据[ q -前面]; q =前面(q +前面+ 1)%大小; (q计数); 回到Y; } 返回0; } / ***********主函数**************** / 主(空) { 字符检查装置[ ] =“A + B(C / D-E)×F-G”;输出示例/ * * / 字符输入[大小]; printf(“例子\n输入:\n%s \n输出:\n”,检查装置); 后缀(检查装置); (1) { printf(“\n任意键开始输入,按ESC退出…\n”); 如果(getch() = = 27) 返回0; printf(“\n请输入中缀表达式:”);/*提示输入*/ scanf(“%s”,输入); 后缀(输入); } getch();/ * * /按任意键继续 返回0; } 国际is_number(ch) { 如果(CH = a和CH = Z | | CH = a和CH = Z | | CH = 0和CH = 9) 返回1; 返回0; } 转后缀表达式函数/ * * / 无效的后缀(中缀表达式字符串) { 队列Q; 堆栈的; int = i 0; 字符,温度; 优先数[ 256 ];/ * * /为每个ASCII码预定义优先级 INITQ(Q);/ * * /初始化栈和队列 init_stack(S); 推(s,\ 0); 优先[×] = 3;优先[ / ] = 3;/*初始化优先级*/ 优先级“+”= 2;优先级“=”= 2; 优先级[(= = 1;优先级[ ] ] ] = 1; 优先级“$”= 0; 做{ CH =中缀[我+ ]; 如果(is_number(CH))/ * * /如果是大写字母 { insertq(CH,和Q);/ * * /插入队列 } 如果(CH = = ))/ * * /如果是右括号 { 温度=流行(的);弹出左括号前的所有运算符/ * * / 而(临时)!=“() { insertq(温度,和Q);/ * * /把弹出的运算符插入队列 温度(POP); } } 如果(CH = =‘0’)/ * * /如果是结束符 { 而(!empty_stack(s)) { 温度(POP); insertq(温度,和Q);/ * * /把栈内剩余的运算符插入队列 } } 如果(CH = = ()/ * * /如果是左括号 { 推(s,CH); } 如果(CH = =“+”| | CH = =“-”| |

文档评论(0)

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

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档