早教吧 育儿知识 作业答案 考试题库 百科 知识分享

栈的操作编写实现顺序栈的各种基本操作的算法,并在此基础上完成如下功能:(1)初始化栈S;(2)判断栈S是否为空;(3)依次将元素a,b,c,d,e进栈S;(4)判断栈S是否为空;(5)输出此

题目详情
栈的操作
编写实现顺序栈的各种基本操作的算法,并在此基础上完成如下功能:
(1)初始化栈S;
(2)判断栈S是否为空;
(3)依次将元素a,b,c,d,e进栈S;
(4)判断栈S是否为空;
(5)输出此时栈S的长度;
(6)输出从栈顶到栈底的元素;
(7)将栈S的所有元素逐个出栈,输出出栈序列;
(8)判断栈S是否为空;
(9)释放栈空间。
注意: 每个过程要显示出各种提示信息。如:要求判断栈是否为空,则要显示:栈目前为空栈.要输出栈S的长度,则显示:栈的长度为:5
▼优质解答
答案和解析
头文件:
#ifndef _SeStack_struct_h
#define _SeStack_struct_h
//
void visit(SElemType &);
Status InitStack(SqStack &S);
/* 构造一个空栈S */
Status DestroyStack(SqStack &S);
/* 销毁栈S,S不再存在 */
Status ClearStack(SqStack &S);
/* 把S置为空栈 */
Status StackEmpty(SqStack S);
/* 若栈S为空栈,则返回TRUE,否则返回FALSE */
int StackLength(SqStack S);
/* 返回S的元素个数,即栈的长度 */
Status GetTop(SqStack S,SElemType &e);
/* 若栈不空,则用e返回S的栈顶元素,并返回OK;否则返回ERROR */
Status Push(SqStack &S,SElemType e);
/* 插入元素e为新的栈顶元素 */
Status Pop(SqStack &S,SElemType &e);
/* 若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERROR */
Status StackTraverse(SqStack S,void(*vi)(SElemType &));
/* 从栈底到栈顶依次对栈中每个元素调用函数visit().*/
/* 一旦visit()失败,则操作失败 */
#endif
看了 栈的操作编写实现顺序栈的各种...的网友还看了以下: