- 15
- 0
- 约4.64千字
- 约 7页
- 2016-09-30 发布于江西
- 举报
数据结构与算法实验任务书2014-S3.doc
实验3 栈 和 队 实验室: DJ2-204 实验日期: 2014年4月4日星期五 周次:第6周 班 级: 12计科3 学号姓名:张翔 一、开发环境及工具:
软件环境:
硬件环境:
二、你的选题:
选题1: 算术表达式的求值
选题2: 迷宫问题
选题3: 停车场管理
选题4: 可以实现多种进制转换和四则运算的计算器
也可以选择自拟题,经过老师同意后使用 三、实验目的:(请自己填写,不少于50字)
(提示:通过……实验掌握……、熟练……、了解……)
通过编写程序来求表达式求值实验掌握了队和栈的应用,熟练的掌握了如何解决问题并实现。了解了栈和队的特点和应用 四、存储结构说明和定义:
基本操作:
InitStack(S)
操作结果:构造一个空栈S。
GetTop(S)
初始条件:栈S已存在。
操作结果:用P返回S的栈顶元素。
Push(S,ch)
初始条件:栈S已存在。
操作结果:插入元素ch为新的栈顶元素。
Pop(S)
初始条件:栈S已存在。
操作结果:删除S的栈顶元素。
In(ch)
操作结果:判断字符是否是运算符,运算符即返回1。
Precede(c1, c2)
初始条件:c1,c2为运算符。
操作结果:判断运算符优先权,返回优先权高的。
Operate(a,op,b)
初始条件:a,b为整数,op为运算符。
操作结果:a与b进行运算,op为运算符,返回其值。
num(n)
操作结果:返回操作数的长度。
EvalExpr()
初始条件:输入表达式合法。
操作结果:返回表达式的最终结果。
}ADT Stack 五、主要算法:
给出程序的概要设计或流程图,给出核心函数的算法,给出每个子函数的函数头。
1.表达式求值
#include stdio.h
#include stdlib.h
#include string.h
#define NULL 0
#define OK 1
#define ERROR -1
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 20
/* 定义字符类型栈 */
typedef struct{
int stacksize;
char *base;
char *top;
} Stack;
/* 定义整型栈 */
typedef struct{
int stacksize;
int *base;
int *top;
} Stack2;
/* ----------------- 全局变量--------------- */
Stack OPTR;/* 定义运算符栈*/
Stack2 OPND; /* 定义操作数栈 */
char expr[255] = ; /* 存放表达式串 */
char *ptr = expr;
int InitStack(Stack *s) //构造运算符栈
{
s-base=(char *)malloc(STACK_INIT_SIZE*sizeof(char));
if(!s-base) return ERROR;
s-top=s-base;
s-stacksize=STACK_INIT_SIZE;
return OK;
}
int InitStack2(Stack2 *s) //构造操作数栈
{
s-base=(int *)malloc(STACK_INIT_SIZE*sizeof(int));
if(!s-base) return ERROR;
s-stacksize=STACK_INIT_SIZE;
s-top=s-base;
return OK;
}
int In(char ch) //判断字符是否是运算符,运算符即返回1
{
return(ch==+||ch==-||ch==*||ch==/||ch==(||ch==)||ch==#);
}
int Push(Stack *s,char ch) //运算符栈插入ch为新的栈顶元素
{
*s-top=ch;
s-top++;
return 0;
}
int Push2(Stack2 *s,int ch)//操作数栈插入ch为新的栈顶元素
{
*s-top=ch;
s-top++;
return 0;
}
char Pop(Stack *s) //删除运算符栈s的栈顶元素,用p返回其值
{
char p;
s-top--;
p=*s-top;
return p;
}
in
您可能关注的文档
最近下载
- 2025年一级建造师风险登记册在项目全生命周期中的应用专题试卷及解析.pdf VIP
- 《美学原理概要》课件.ppt VIP
- 2025年演出经纪人演出项目融资退出机制设计与法律安排专题试卷及解析.pdf VIP
- 2025年互联网营销师文案的“网感”与“社交货币”打造专题试卷及解析.pdf VIP
- 2025年演出经纪人演出经纪法律责任与权利义务边界专题试卷及解析.pdf VIP
- 基于联邦学习的跨机构医疗数据协作研究框架.pdf VIP
- 股份公司境外公司管理办法.doc VIP
- 2026苏教版高考化学一轮复习第30讲 有机物推断与合成(学用).doc
- 职业道德考试及答案.doc VIP
- 工勤职业道德考试及答案.doc VIP
原创力文档

文档评论(0)