1 / 33
文档名称:

栈和队列的基本操作的实现-数据结构实验.docx

格式:docx   大小:326KB   页数:33页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

栈和队列的基本操作的实现-数据结构实验.docx

上传人:陈潇睡不醒 2018/5/7 文件大小:326 KB

下载得到文件列表

栈和队列的基本操作的实现-数据结构实验.docx

文档介绍

文档介绍:实验报告
五月 7
2015
姓名:陈斌学号:E11314079 专业:13计算机科学与技术
数据结构第二次实验
学号 E11314079 专业计算机科学与技术姓名陈斌
实验日期 教师签字成绩
实验报告
【实验名称】栈和队列的基本操作的实现
【实验目的】
理解并掌握栈和队列的逻辑结构和存储结构;
理解栈和队列的相关基本运算;
编程对相关算法进行验证;
学会利用栈和队列解决实际问题。
【实验内容】
实现顺序栈的基本运算
编写一个程序,实现顺序栈的各种基本运算,并在此基础上设计一个主程序完成如下功能:
(1)初始化栈s;
(2)判断栈s是否为空;
(3)依次进栈元素-1,2,10,-3,5;
(4)判断栈s是否为空;
(5)输出栈长度;
(6)输出从栈顶到栈底的元素;
(7)输出出栈序列;
(8)判断栈s是否为空。
源代码:
:
#include<>
#include<>
#include<> //malloc( )
#include<> // INT ,MAX
#include<> //EOF,NULL
#include<> //atoi( )
#include<> //eof( )
#include<> //floor( ),ceil( ),abs( )
#include<> //exit( )
#include<> //cout,cin
//函数结果状态代码
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
//OVERFLOW 在 中已定义为3
typedef int Status;
typedef int Boolean; // 布尔类型
:
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef struct{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;
:
#define SElemType int
#include""
#include""
Status InitStack(SqStack &S)
{ /* 构造一个空栈S */
=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));
if(!)
exit(OVERFLOW); /* 存储分配失败*/
=;
=STACK_INIT_SIZE;
return OK;
}
Status StackEmpty(SqStack &S)
{ /* 若栈S为空栈,则返回TRUE,否则返回FALSE */
if(==)
return TRUE;
else
return FALSE;
}
int StackLength(SqStack &S)
{ /* 返回S的元素个数,即栈的长度*/
return -;
}
Status GetTop(SqStack &S,SElemType &e)
{ /* 若栈不空,则用e返回S的栈顶元素,并返回OK;否则返回ERROR */
if(>)
{
e=*(-1);
return OK;
}
else
return ERROR;
}
Status Push(SqStack &S,SElemType e)
{ /* 插入元素e为新的栈顶元素*/
if(->=) /* 栈满,追加存储空间*/
{
=(SElemType *)realloc(,(+STACKINCREMENT)*sizeof(SElemType));
if(!)
exit(OVERFLOW); /* 存储分配失败*/
=+;
+=STACKINCREM