- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
數据结构代码中缀转后缀表达式算法及源代码
#includestdio.h
#includestdlib.h
#includemath.h
#define MAX 100 /* 表达式最大长度 */
#define true 1
#define false 0
/* 定义数据栈 */
typedef struct LinkStack1
{
float data;
struct LinkStack1 *next;
}LinkStack1,*Top1;
int initStack1(Top1 *t) /*数据栈初始化*/
{
*t=NULL;
return true;
}
int push1(Top1 *t,float val) /*数据栈插入元素*/
{
Top1 p=(Top1)malloc(sizeof(LinkStack1));/* 开内存 */
if(p==NULL)
return false;
p-data=val;
p-next=*t;
*t=p;
return true;
}
float getTop1(Top1 *t) /*取数据栈元素*/
{
return (*t)-data;
}
int pop1(Top1 *t,float *val) /*推出数据栈元素并存到*val中*/
{
Top1 p=*t;
if(p==0)
return false;
*t=p-next;
*val=p-data;
free(p); /* 释放所占内存 */
return true;
}
/* 定义操作符栈 */
typedef struct LinkStack2{
int data;
struct LinkStack2 *next;
}LinkStack2,*Top2;
int initStack2(Top2 *t) /*数据栈初始化*/
{
*t=NULL;
return true;
}
int push2(Top2 *t,char val) /*操作符栈插入元素*/
{
Top2 p=(Top2)malloc(sizeof(LinkStack2)); /* 开内存 */
if(p==0)
return false;
p-data=val;
p-next=*t;
*t=p;
return true;
}
int getTop2(Top2 *t) /*取操作符栈元素*/
{
return (*t)-data;
}
int pop2(Top2 *t,char *val)
Top2 p=*t;
if(p==0)
return false;
*t=p-next;
*val=p-data;
free(p); /* 释放所占内存 */
return true;
}
/* 计算 */
float calc(float a, char op, float b)
{ int d,e;
switch(op)
{
case +:return a+b; /* 计算+ */
case -:return a-b; /* 计算- */
case *:return a*b; /* 计算* */
case /: /* 计算/,若被除数为零,报错 */
if(b==0)
{
printf(Error Divisor is 0\n);
return false;
}
return a/b;
case %: /* 计算%,若被取余数为零报错 */
d=(int)a;
e=(int)b;
if(e==0)
{
printf(Error Divisor is 0\n);
return false;
}
return (float)(d%e);
您可能关注的文档
- 教材(全)..doc
- 教材多發性创伤.doc
- 教材及相關资料建设.doc
- 教材是實施教学的工具.doc
- 教材書理论题解答.doc
- 教材的邏辑顺序与心理顺序杜威的探索.doc
- 教材編写思路与提纲.doc
- 教材解析黃金叶.doc
- 教材課本作文素材.doc
- 教科版七年級上政治复习资料.doc
- 2025年杭州市富阳区部分事业单位公开招聘工作人员笔试模拟试题及答案详解一套.docx
- 浙江台州市经济和信息化局选聘下属事业单位工作人员笔试模拟试题及答案详解一套.docx
- 广东深圳市眼科医院招聘工作人员13人笔试模拟试题带答案详解.docx
- 2025年江苏通州湾示范区部分事业单位招聘14人笔试模拟试题及参考答案详解一套.docx
- 2024年江苏无锡市教育局直属单位选聘事业单位工作人员(二)笔试模拟试题含答案详解.docx
- 2025年广西区直事业单位统一招聘工作人员补充笔试模拟试题参考答案详解.docx
- 2025年贵州思南县事业单位引进83名高层次及急需紧缺人才(第二批)笔试模拟试题及完整答案详解1套.docx
- 2025年北京丰台区事业单位招聘120人笔试模拟试题及完整答案详解1套.docx
- 2025年江苏省交通技师学院招聘高层次人才4人笔试模拟试题及完整答案详解1套.docx
- 2025年河北民族师范学院博士研究生选聘50人笔试模拟试题附答案详解.docx
文档评论(0)