实验31实现顺序栈各种基本运算的算法.doc
文本预览下载声明
PAGE 3
实验三 实现顺序栈各种基本运算的算法
1.实验目的
(1)掌握栈的定义、出入栈的方法及基本操作。
(2)掌握将算法在VC++6.0语言环境下实现的过程。
2.实验准备
(1)复习栈的定义,掌握出入栈的方法及操作。
(2)复习C语言中数组及结构体的概念、定义方式。
(3)实验的计算机中安装了Microsoft VC++ 6.0。
3.实验内容与要求
编写一个控制台程序实现顺序栈的各种基本运算,并在此基础上设计一个主程序完成如下功能:
初始化栈s。
判断栈s是否非空。
依次进栈元素a,b,c,d,e。
判断栈s是否非空。
输出栈长度。
输出从栈顶到栈底的元素。
输出出栈序列。
判断栈s是否非空。
释放栈。
下列是上述程序部分代码,部分函数未实现。补充完成下列程序。
#include stdio.h
#include malloc.h
#define MaxSize 100
typedef char ElemType;
typedef struct
{
ElemType elem[MaxSize];
int top; /*栈指针*/
} SqStack;
void InitStack(SqStack *s)///初始化栈s
{
s=(SqStack *)malloc(sizeof(SqStack));
s-top=-1;
}
void ClearStack(SqStack *s)///释放栈s
{
}
int StackLength(SqStack *s)///求栈s长度
{
}
int StackEmpty(SqStack *s)///判断栈s是否为空栈
{
}
int Push(SqStack *s,ElemType e)///进栈元素e
{
return 1;
}
int Pop(SqStack *s,ElemType e)///出栈一个元素
{
return 1;
}
int GetTop(SqStack *s,ElemType e)///取栈顶元素
{
return 1;
}
void DispStack(SqStack *s)///从栈顶到栈底输出元素
{
}
////////////////////////////////////////////////////
#include stdio.h
#include malloc.h
#define MaxSize 100
typedef char ElemType;
typedef struct
{
ElemType elem[MaxSize];
int top; /*栈指针*/
} SqStack;
extern void InitStack(SqStack *s);
extern void ClearStack(SqStack *s);
extern int StackLength(SqStack *s);
extern int StackEmpty(SqStack *s);
extern int Push(SqStack *s,ElemType e);
extern int Pop(SqStack *s,ElemType e);
extern int GetTop(SqStack *s,ElemType e);
extern void DispStack(SqStack *s);
void main()
{
ElemType e;
SqStack *s;
printf((1)初始化栈s\n);
InitStack(s);
printf((2)栈为%s\n,(StackEmpty(s)?空:非空));
printf((3)依次进栈元素a,b,c,d,e\n);
Push(s,a);
Push(s,b);
Push(s,c);
Push(s,d);
Push(s,e);
ClearStack(s);
}
显示全部