云南大学软件学院数据结构实验3.doc
文本预览下载声明
实验难度: A □ B □ C □
序号 学号 姓名 成绩 指导教师 (签名)
学 期: 2017秋季学期
任课教师:
实验题目:
组员及组长:
承担工作:
联系电话:
电子邮件:
完成提交时间: 年 月 日
一、【实验构思(Conceive)】(10%)
(本部分),则魔王语言解释为“我爱数据结构”。
运用了离散数学的一些基本知识及程序设计知识。
二、【实验设计(Design)】(20%)
(本部分)#define STACK_INIT_SIZE 50
#define STACKINCREMENT 10
#define OVERLOW -2
#define ERROR -1
typedef struct {
char *base; //顺序栈的栈底指针
int top; //顺序栈的栈顶
int size; //栈元素空间的大小
}SqStack; //结构体类型顺序栈
typedef struct {
char *base;
int front;
int rear;
}SqQueue; //结构体类型队列
//---------------各个模块功能的描述------------------//
void Init_SqStack(SqStack s) //初始化顺序桟
void Push_SqStack(SqStack s, char c) //压入数据
int Pop_SqStack(SqStack s, char e) //出桟
char GetTop_SqStack(SqStack s)//或得栈顶
int IsEmpty_SqStack(SqStack s)//判断是否空栈
void Init_SqQueue(SqQueue q)//初始化
void En_SqQueue(SqQueue q, char c)//进队列
int De_SqQueue(SqQueue q, char e) //出队列
void Translate(char c) //打印字符
void Reverse(char str[],char strtmp[])//将字符串反向
int Execute(char ch[], SqStack s, SqQueue q)//魔王语言操作
调用关系:
三、【实现(Implement)】(30%)
(本部分int main()
{
char ch[100];
char ch1[100];
char ch2[100];
char e;
//********************************************************英文解密
printf(请输入魔王语言:);
gets(ch);
SqStack s;
SqQueue q;
Init_SqStack(s);
Init_SqQueue(q);
if(Execute(ch,s,q) == 1)
{
while(De_SqQueue(q,e) == 1)
{
Translate(e);
}
}
else
printf(输入的括号不匹配!); //左括号比右括号多,不匹配
//********************************************************中文解密
printf(\n);
printf(请输入魔王语言:);
gets(ch1);
Init_SqStack(s);
Init_SqQueue(q);
Reverse(ch1,ch2);
{
for(int i=0;ch2[i]!=\0;i++)
Push_SqStack(s,ch2[i]);
while(Pop_SqStack(s,e) == 1)
{
switch(e)
显示全部