数据结构实验报告(栈括号匹配).doc

上传人:doc321 文档编号:14952178 上传时间:2022-02-26 格式:DOC 页数:6 大小:85.50KB
返回 下载 相关 举报
数据结构实验报告(栈括号匹配).doc_第1页
第1页 / 共6页
数据结构实验报告(栈括号匹配).doc_第2页
第2页 / 共6页
数据结构实验报告(栈括号匹配).doc_第3页
第3页 / 共6页
数据结构实验报告(栈括号匹配).doc_第4页
第4页 / 共6页
数据结构实验报告(栈括号匹配).doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《数据结构实验报告(栈括号匹配).doc》由会员分享,可在线阅读,更多相关《数据结构实验报告(栈括号匹配).doc(6页珍藏版)》请在三一文库上搜索。

1、数据结构课程设计报告设计题目: 括号匹配院 系 计算机学院 年 级 11 级 学 生 刘云飞 学 号 E01114295 指导教师 王 爱 平 起止时间 9-7/9-14 课程设计目的1.熟悉并写出栈的逻辑结构表示2.实现栈的存储表示3.实现栈的操作内容括号匹配课程设计要求1.在实验报告中写出栈的ADT表示;2.在实验报告中给出数据类型定义和核心算法和程序;3.在实验报告中罗列实验过程中出现的问题和解决的方法;4.打包上交调试后的完整程序,提交实验报告;5.实验之前写出实验报告的大概框架,实验过程中填写完整。6.实验时携带需要上机调试的程序;7.实验评分:实验之前预习占20%,实验报告书写情况

2、占50%,运行情况30%。概要设计1 栈的ADT表示ADT Stack数据对象:D=ai|ai ElemSet,i=1,2,n,n=0数据关系:R1=|ai-1,ai D,i=2,n约定an为栈顶端,a1为栈底端基本操作:Status InitStack(&s)操作结果:构造一个空栈s。Status Push( &s, e)初始条件:栈s已经存在。操作结果:插入元素e为新的栈顶元素。Status Pop( &s, &e)初始条件:栈s已经存在,并不为空。操作结果:删除s的栈顶元素,并用e返回其值。Status Check( &s, e)初始条件:栈s已经存在,并不为空。操作结果:判断括号是否匹

3、配。Status EnterString( &s)ADT Stack2 数据类型定义和核心算法和程序 数据类型定义:typedef int Status;typedef char SElemType;typedef struct /栈的顺序存储表示SElemType* base;SElemType* top;int stacksize;SqStack;int x=0;SElemType a;SElemType e; 核心算法: 程序:#include #include #include #define TURE 1#define FALSE 0#define ERROR 0#define OK

4、 1#define INFEASIBLE -1#define OVERFLOW -2#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef int Status;typedef char SElemType;typedef struct /栈的顺序存储表示SElemType* base;SElemType* top;int stacksize;SqStack;int x=0;Status InitStack(SqStack &s)/构造一个空栈Ss.base = (SElemType*)malloc(STACK_INIT_SIZE

5、 * sizeof(SElemType);if (!s.base) exit(OVERFLOW);/内存分配失败s.top = s.base;s.stacksize = STACK_INIT_SIZE;return OK;Status Push(SqStack &s,SElemType e)/插入元素e为新的栈顶元素if(s.top-s.base=s.stacksize)/栈满追加存储空间。s.base = (SElemType*)realloc(s.base,(s.stacksize+STACKINCREMENT)*sizeof(SElemType);if(!s.base) exit(OVE

6、RFLOW);/内存分配失败s.top = s.base+s.stacksize;s.stacksize += STACKINCREMENT;*s.top+ =e;return OK;Status Pop(SqStack &s,SElemType &e)/若栈不空,则删除s的栈顶元素,用e返回其值,并返回ok;否则返回error。if(s.top = s.base) return ERROR;e = * -s.top;return OK;/Status Check(SqStack &s,SElemType e)SElemType a;Pop(s,a);if( a=( & e=) |a=& e=

7、 |a=& e= )return TURE;return ERROR;Status EnterString(SqStack &s)SElemType e;while (1)scanf(%c,&e);if(e=(|e=|e=)Push(s,e);else if(e=)|e=|e=)if(!Check(s,e)return FALSE;break;else if(e!=n)x=1;return FALSE;break;elsebreak;void main()system(cls);system(color 1f);printf(n=n);printf(| *欢迎进入 括号匹配 系统* |n);printf(| 姓名:刘云飞 学号:E01114295 |n);printf(_n);SqStack s;InitStack(s);if(EnterString(s)printf(括号匹配n);else if(x=1)printf(输入的不是括号n);elseprintf(括号不匹配n);【实验结果】- 6 - / 6文档可自由编辑打印

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1