




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/*题目:设计一个字符型的链栈。* 编写进栈、出栈、显示栈中全部元素的程序。*题目:编写一个把十进制整数转换为二进制数的应用程序*题目:编写一个把中缀表达式转换为后缀表达式(逆波兰式)的应用程序*题目:设计一个选择式菜单,以菜单方式选择上述操作。* 栈 子 系 统* * * 1-进 栈 * * 2-出 栈 * * 3-显 示 * * 4-数值转换 * * 5-逆波兰式 * * 0-返 回 * * 请选择菜单号(0-5):*/#include #include #define STACKMAX 50typedef struct sta /栈的存储结构 int data; struct sta *next;stackNode;typedef struct /指向栈顶的指针 stackNode *top;linkStack;void conversion(int n);void push(linkStack *p, int x);int pop(linkStack *p);void showStack(linkStack *p);void sufflx();/*Function: main()Description: 主调函数Calls: push() pop() showStack() conversion()Input: NULLReturn: voidOthers: NULL*/void main() int x, choice, i = 1; linkStack p; p.top = NULL; /置空栈 while (i) printf(n 栈 子 系 统n); printf(*n); printf(* 1-进 栈 *n); printf(* 2-出 栈 *n); printf(* 3-显 示 *n); printf(* 4-数值转换 *n); printf(* 5-逆波兰式 *n); printf(* 0-返 回 *n); printf(*n); printf(请选择菜单号(0-5):); fflush(stdin); /清空输入的缓存区 choice = getchar(); switch(choice) case 1: while (1) printf(请输入一个整数(0表示结束)并按回车:); scanf(%d, &x); if (x != 0) push(&p, x); /入栈 else break; break; case 2: x = pop(&p); /出栈 if (x 0) printf(出栈元素为:%dn, x); else printf(栈为空,没有元素可以出栈!n); break; case 3: showStack(&p); /显示栈元素 break; case 4: printf(请输入十进制数:); scanf(%d, &x); conversion(x); /数值转换 break; case 5: sufflx(); break; case 0: i = 0; break; default: i = 1; break; /*Function: conversion()Description: 十进制数转换二进制数Calls: push() pop()Input: n :输入的要转换的数Return: voidOthers: NULL*/void conversion(int n) linkStack s; int x, i = 1; s.top = NULL; /置空栈 do x = n%2; /求余数 n = n/2; /求新商 push(&s, x); /入栈 while (n); printf(转化的二进制为:); while (i) x = pop(&s); /出栈 if (x != -1) /判断是否全部出栈 printf(%d, x); else i = 0; printf(n);void sufflx() char strSTACKMAX; /存储中缀表达式 char expSTACKMAX; /存储后缀表达式 char starkSTACKMAX; /顺序栈来存放运算符 int top = 0; /顺序栈置空 int sum, t, i = 0; char ch; printf(请输入一个算术表达式(运算符只能包含+,-,*,/),以#结束:n); fflush(stdin); do i+; scanf(%c, &stri); while (stri != # & i != STACKMAX); /存储用户输入的中缀表达式 sum = i; /保存表达式的长度 i = t = 1; ch = stri; i+; while (ch != #) switch (ch) case (: /读取到(时,入栈 top+; starktop = ch; break; case ): /读取到)时 while (starktop != () expt+ = starktop-; /出栈并赋值给输出数组 expt+ = ,; /添加分割符号 top-; /栈顶元素为(时,出栈 break; case +: /读取到+时 while (top != 0 & starktop != () /判断符号优先级 expt+ = starktop-; expt+ = ,; stark+top = ch; /栈为空时入栈 break; case -: /读取到-时 while (top != 0 & starktop != () expt+ = starktop-; expt+ = ,; stark+top = ch; /栈为空时入栈 break; case *: /读取到*时 while (starktop = * | starktop = /) /*、/运算级最高 expt+ = starktop-; expt+ = ,; stark+top = ch; /运算符优先级高的入栈 break; case /: /读取到/时 while (starktop = * | starktop = /) expt+ = starktop-; expt+ = ,; stark+top = ch; /运算符优先级高的入栈 break; case : /读取到空格时忽略 break; default: /不是运算符号时 while (ch = 0 & ch = z) /限制输入的变量 expt+ = ch; ch = stri+; i-; /上面多加的要去掉 expt+ = ,; break; ch = stri+; while (top != 0) /顺序栈中仍有数值时 expt+ = starktop-; if (top != 0) expt+ = ,; printf(中缀表达式为:); /输出 for (i = 1; i sum; i+) printf(%c, stri); printf(n后缀表达式为:); for (i = 1; i data = x; q-next = p-top; p-top = q;/*Function: pop()Description: 出栈Calls: NULLInput: *p:栈的栈顶指针Return: intOthers: NULL*/int pop(linkStack *p) /出栈 stackNode *q; int x; if (p-top != NULL) q = p-top; x = q-data; p-top = q-next; free(q); return x; /返回栈顶元素 else return -1; /*Function: showStack()Description: 显示栈中元素Calls: NULLInput: *p:栈的栈顶指针Return: voidOthers: NULL*/v
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安防专家考试题库及答案
- 考点攻克人教版8年级数学上册《整式的乘法与因式分解》达标测试试题(含答案及解析)
- 货运值班员、检查员考试试题(附答案)
- 2025年旅游地产项目规划设计与可持续发展策略分析报告
- 押题宝典高校教师资格证之《高等教育心理学》考试题库(含答案详解)
- 2025年环境监测物联网技术在环境监测设备供应链中的应用报告
- 2025至2030年中国甘油(丙三醇)行业发展监测及投资战略研究报告
- 解析卷人教版8年级数学上册《全等三角形》综合训练试题(含答案解析)
- 2025年科技与互联网行业智能家居与智慧城市环境监测报告
- 推拿治疗学考试题库及参考答案详解(黄金题型)
- 初中物理科学家传记与贡献解读
- 安全防护文明施工措施
- 教学质量分析与教学反思改进教学
- 德育工作培训课件
- 碳纤维行业培训课件
- 口腔护理教学课件设计与实施要点
- 中医诊所安全管理制度
- 2024年海南三亚市海棠区机关事业单位招聘笔试高频难、易错点备考题库及参考答案详解
- 耳石症诊断与治疗讲课件
- 空管招聘面试题及答案
- 校外集体配餐管理制度
评论
0/150
提交评论