文档详情

云南大学软件学院数据结构实验3.doc

发布:2018-01-09约8.19千字共11页下载文档
文本预览下载声明
实验难度: 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)
显示全部
相似文档