《括号匹配84621.doc》由会员分享,可在线阅读,更多相关《括号匹配84621.doc(4页珍藏版)》请在金锄头文库上搜索。
1、 实 验 报 告课程名称:计算机软件基础学期:20011-2012学年第二学期成绩:姓名:刘艳飞考号:031211500033实验名称:括号匹配 实验要求: 必作实验学时:2学时实验编号:4实验日期: 第2周完成日期:2012-3-18学院:机电工程学院专业 :数控技术年级: 2011级一、实验目的掌握编写并调试排序二、实验内容 编写并调试括号匹配的程序,介绍程序所能够达到的功能.程序如下:#include#include#include#define MAX 100#define INIT_STACK_SIZE 10#define STACKINCREMENT 10typedef struc
2、tchar *base;char *top;int stacksize;SqStack;SqStack InitStack(SqStack S);int Process(SqStack S,char expression,int len);SqStack Push(SqStack S,char c);int StackEmpty(SqStack S);SqStack Pop(SqStack S);void OutPut(SqStack S);int main(void)SqStack S;char expressionMAX;int len;printf(Please input string
3、: n);scanf(%s,expression);len=strlen(expression);S=InitStack(S); if(Process(S,expression,len)printf(success.n); /*输出“success”*/elseprintf(failure.n); /*输出“failure”*/return 0;SqStack InitStack(SqStack S)if(S.base=(char *)malloc(INIT_STACK_SIZE * sizeof(char)=NULL)exit(1);S.top=S.base;S.stacksize=INIT
4、_STACK_SIZE;return S;int Process(SqStack S,char expression,int len)int i,flag=1; *定义i,flag,flag赋值为1*/for(i=0;i= S.stacksize)if(S.base=(char *)realloc(S.base,(S.stacksize + STACKINCREMENT) * sizeof(char)=NULL)exit(1);S.top=S.base + S.stacksize;S.stacksize+=STACKINCREMENT;return S;int StackEmpty(SqSta
5、ck S)int flag=1;if(S.top = S.base)flag=0;return flag;SqStack Pop(SqStack S)S.top-;return S;调试分析;(1)运行结果如下: (输入)Success) (输入)Failure (输入)Failure(2)其时间复杂度为O(n)其空间复杂度为O(1)三、实验环境Windows XP Visual C+;四、实验总结1遇到的问题及分析: 1. “return flag;”没加“;”2.#include没加“#”3. “”漏写2遇到的问题是怎样解决的:通过百度解决。向指导老师求解3体会和收获。 经过C语言的编写于运行是自己对编写程序过程中,要仔细每一步的编写,分号的应用。 做到条理清晰分明。遇到问题要学会查找解决的方法(同学间的互相探讨,向指导老师求解等)