预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

一、设计人员相关信息 1.设计者姓名、学号和班号:12地信李晓婧 2.设计日期:2021. 3.上机环境:VC++ 二、程序设计相关信息 1.实验题目:编写一个程序,实现顺序栈(假设栈中元素类型为char)的各类 大体运算,并在此基础上设计一个程序,完成如下功能: (1)初始化栈 (2)判定栈是不是为空 (3)依次进栈元素a,b,c,d,e (4)判定栈是不是为空 (5)输出栈长度 (6)输出从栈顶到栈底元素 (7)输出出栈序列 (8)判定栈是不是为空 (9)释放栈 2.实验项目组成:栈的初始化、销毁、判定是不是为空、进栈、出栈、取栈顶 元素。 3.实验项目的程序结构(程序中的函数挪用关系图): Main InitStack DestroyStack StackEmpty Push Pop GetPop 4.实验项目包括的各个文件中的函数的功能描述: (1)初始化栈InitStack:成立一个新的空栈,事实上将栈顶指针指向-1即可。 (2)销毁栈DestroyStack:释放栈占用的存储空间 (3)判定栈是不是为空StackEmpty:栈为空的条件是s->op==-1。 (4)进栈Push:在栈不满的条件下,先将栈顶指针增1,然后在栈顶指针指向 位置插入元素e。 (5)出栈Pop:在栈不为空的条件下,先将栈顶元素赋给e,然后将栈顶指针减 1. (6)取栈顶元素GetTop:在栈不为空的条件下,将栈顶元素赋给e。 5.算法描述或流程图: #include<> #defineMaxSize50 typedefcharElemType; typedefstruct {ElemTypedata[MaxSize]; inttop;/*栈顶指针*/ }SqStack;//概念顺序栈类型 voidInitStack(SqStack*&s)/*初始化*/ { s=(SqStack*)malloc(sizeof(SqStack)); s->top=-1;//栈顶指针置为-1 } voidDestroyStack(SqStack*&s)/*销毁*/ { free(s); } intStackEmpty(SqStack*s)/*判定是不是为空*/ { return(s->top==-1); } intpush(SqStack*&s,ElemTypea[],intn) { inti; if(s->top==MaxSize-1)//栈满的情形,即栈上溢出 return0; for(i=0;i<n;i++) { s->top++;//栈顶指针增1 s->data[s->top]=a[i];//元素e放在栈顶指针处 } return1; } intPop(SqStack*&s,ElemType&e)/*出栈一个元素*/ { if(s->top==-1)//栈为空的情形,即栈下溢出 return0; e=s->data[s->top];//取栈顶元素 s->top--;//栈顶指针减1 return1; } intGetTop(SqStack*s,ElemType&e)/*取栈顶元素*/ { if(s->top==-1)//栈为空的情形,即栈下溢出 return0; e=s->data[s->top];//取栈顶元素 return1; } intStackLength(SqStack*s)/*求栈长度*/ { return(s->top+1); } voidDispStack(SqStack*s) { inti; for(i=s->top;i>=0;i--) } voidmain() { inti,j; ElemTypestr[5]={'a','b','c','d','e'};//概念字符数组 SqStack*st;//概念栈 InitStack(st);/*初始化*/ i=StackEmpty(st);//判定栈是不是为空 if(i==0) 顺序栈非空 else 顺序栈为空 push(st,str,5);//进栈 j=StackEmpty(st); if(j==0) 顺序栈非空 else 顺序栈为空 栈长度为:输出栈长度 出栈序列 DispStack(st);//输出栈 StackEmpty(st); DestroyStack(st); } 6.实验数据和实验结果: 7.显现的问题及解决方案: (1) (2) (3) 解决方案:(1)添加typedefcharElemType; (2) (3) 三、程序盘 提交的程序盘应包括全数的源程序清单和可执行文件。