资源简介
数据结构 栈 表达式求值数据结构 栈 表达式求值数据结构 栈 表达式求值
代码片段和文件信息
#include“biaodashi.h“
int InitStack(SqStack *S)
{
(*S).base = (SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));
if( !(*S).base )
exit(0);
(*S).top = (*S).base;
(*S).stacksize = STACK_INIT_SIZE;
return 1;
}
int GetTop(SqStack SSElemType *e)
{
if(S.top > S.base)
{
*e = *(S.top-1);
return 1;
}
else
return 0;
}
int Push(SqStack *S SElemType e)
{
if((*S).top - (*S).base >= (*S).stacksize)
{
(*S).base = (SElemType *)realloc((*S).base
((*S).stacksize + STACKINCREMENT) * sizeof(SElemType));
if( !(*S).base )
exit(0);
(*S).top = (*S).base+(*S).stacksize;
(*S).stacksize += STACKINCREMENT;
}
*((*S).top)++=e;
return 1;
}
int Pop(SqStack *SSElemType *e)
{
if((*S).top == (*S).base)
return 0;
*e = *--(*S).top;
return 1;
}
SElemType Precede(SElemType t1SElemType t2)
{
SElemType f;
switch(t2)
{
case ‘+‘:
case ‘-‘:if(t1==‘(‘||t1==‘#‘)
f=‘<‘;
else
f=‘>‘;
break;
case ‘*‘:
case ‘/‘:if(t1==‘*‘||t1==‘/‘||t1==‘)‘)
f=‘>‘;
else
f=‘<‘;
break;
case ‘(‘:if(t1==‘)‘)
{
printf(“ERROR\n“);
exit(0);
}
else
f=‘<‘;
break;
case ‘)‘:switch(t1)
{
case ‘(‘:f=‘=‘;
break;
case ‘#‘:printf(“ERROR\n“);
exit(0);
default: f=‘>‘;
}
break;
case ‘#‘:switch(t1)
{
case ‘#‘:f=‘=‘;
break;
case ‘(‘:printf(“ERROR\n“);
exit(0);
default: f=‘>‘;
}
}
return f;
}
int In(SElemType c)
{
switch(c)
{
case‘+‘:
case‘-‘:
case‘*‘:
case‘/‘:
case‘(‘:
case‘)‘:
case‘#‘:
return 1;
default:
return 0;
}
}
SElemType Operate(SElemType aSElemType thetaSElemType b)
{
SElemType c;
switch(theta)
{
case‘+‘:
c=a+b;
break;
case‘-‘:
c=a-b;
break;
case‘*‘:
c=a*b;
break;
case‘/‘:
c=a/b;
}
return c;
}
SElemType Evaluateexpression()
{
SqStack OPTROPND;
SElemType abdxtheta;
char c;
char z[10];
int i;
InitStack(&OPTR);
Push(&OPTR‘#‘);
InitStack(&OPND);
c=getchar();
GetTop(OPTR&x);
while(c!=‘#‘||x!=‘#‘)
{
if(In(c))
switch(Precede(xc))
{
case‘<‘:Push(&OPTRc);
c=getchar();
break;
case‘=‘:Pop(&OPTR&x);
c=getchar();
break;
case‘>‘:Pop(&OPTR&theta);
Pop(&OPND&b);
Pop(&OPND&a);
Push(&OPNDOperate(athetab));
break;
}
else if(c>=‘0‘&&c<=‘9‘)
{
i=0;
do
{
z[i]
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3224 2011-10-30 22:04 biaodashi\biaodashi.c
文件 4450 2011-10-30 23:10 biaodashi\biaodashi.dsp
I.A.... 543 2011-11-22 00:07 biaodashi\biaodashi.dsw
文件 213 2011-10-30 22:04 biaodashi\biaodashi.h
文件 50176 2011-11-20 18:03 biaodashi\biaodashi.ncb
I.A.... 48640 2011-11-22 00:07 biaodashi\biaodashi.opt
文件 1689 2011-10-30 22:04 biaodashi\biaodashi.plg
文件 157 2011-11-10 01:44 biaodashi\biaodashitest.c
文件 168034 2011-10-30 22:04 biaodashi\Debug\biaodashi.exe
文件 189528 2011-10-30 22:04 biaodashi\Debug\biaodashi.ilk
文件 10169 2011-10-30 22:04 biaodashi\Debug\biaodashi.obj
文件 177960 2011-10-30 22:04 biaodashi\Debug\biaodashi.pch
文件 377856 2011-10-30 22:04 biaodashi\Debug\biaodashi.pdb
文件 2894 2011-10-30 22:04 biaodashi\Debug\biaodashitest.obj
文件 33792 2011-10-30 22:04 biaodashi\Debug\vc60.idb
文件 53248 2011-10-30 22:04 biaodashi\Debug\vc60.pdb
I..D... 0 2011-11-22 00:07 biaodashi\Debug
目录 0 2011-11-20 18:03 biaodashi
----------- --------- ---------- ----- ----
1122573 18
相关资源
- 火车车厢重排列问题 堆栈解决
- 利用栈求表达式课程设计
- IAR环境下STM32F1xx堆栈的外部SRAM实现
- CC2530协调器源代码
- 教学计划编制问题有向图和拓扑排序
- Spring Security技术栈开发企业级认证与
- BSD的TCP/IP协议栈
- 算数表达式求值C实现
- 数据结构的渡口调度管理
- 中缀表达式求值
- 03_模块使用说明_CAN恒润科技协议栈
- 算术表达式求值源码+实验报告
- 某课吧全栈第一期视频(blue主讲)
- vue2.0node.jsMongoDB全栈打造商城完整版
- 栈溢出攻击技术
- Vue全家桶+SSR+Koa2全栈开发美团网[完整
- 用栈实现汉诺塔问题
- 利用栈求表达式的值
- Node.js 从零开发 web server博客项目 前端
- Spring Boot+Vue全栈开发实战dpf,包含章
- 利用顺序栈将一个非负的十进制整数
- 数据结构实验报告3-栈与队列-中缀表
- 中缀表达式转后缀表达式并求值
- 数据结构课程设计 表达式求值
- 恒润协议栈cantp模块使用说明书
- 数据结构上机实验_栈和队列的应用
- 数据结构车厢调度课程设计
- 利用栈求表达式的值数据结构
- 利用栈实现括号匹配的检验
- SpringBootVue全栈开发实战+整本代码.t
评论
共有 条评论