实验报告
实验课程名称数据结构与算法
实验项目名称栈与队列的表示与实现
年级
专业
学生姓名
学号
理学院
实验时间: 年月日
学生所在学院: 专业: 班级:
姓名
学号
实验组
实验时间
指导教师
成绩
实验项目名称
栈与队列的表示与实现
实验目的及要求:
内容:
(1). 栈的顺序存储和链式存储结构实现的方法,基于相应的表示实现栈的初始化,入栈、出栈等操作,并能对一个简单实例进行处理。
(2). 队列的顺序存储和单链表存储结构的实现方法,实现队列的初始化,入队、出队等操作,并能对一个简单实例进行处理。
(3). 顺序存储结构实现循环队列的方法,并实现队列的初始化,入队、出队、队满队空判断等操作,并能对一个简单实例进行处理。
要求:能熟练掌握栈和队列的不同表示,并能基于此实现栈和队列的典型操作,理解栈和队列在软件开发中的重要性。
实验(或算法)原理:
实验硬件及软件平台:
计算机、VC++
流程图:
实验内容(包括实验具体内容、算法分析、源代码等等):
#include <>
#include <>
#include <>
#include <>
#include <>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define STACK_INIT_SIZE 10
#define STACKINCREMENT 2
typedef int Status;
typedef int Booleam;
typedef int SElemType;
struct SqStack
{
SElemType *base;
SElemType *top;
int stacksize;
};
Status InitStack(SqStack &S)
{
if(!(=(SElemType *)malloc(STACK_INIT_SIZE *sizeof(SElemType))))
exit(OVERFLOW);
=;
=STACK_INIT_SIZE;
return OK;
}
Status StackEmpty(SqStack &S)
{
if(==)
return TRUE;
else
return FALSE;
}
Status Push(SqStack &S,SElemType e)
{
if(->=)
{
=(SElemType *)realloc(,(+STACKINCREMENT)*sizeof(SElemType));
if(!)
exit(OVERFLOW);
=+;
+=STACKINCREMENT;
}
*(
进制转换 来自淘豆网m.daumloan.com转载请标明出处.