1 / 3
文档名称:

数据结构课程实验(栈和队列的应用).doc

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

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

分享

预览

数据结构课程实验(栈和队列的应用).doc

上传人:mh900965 2018/2/10 文件大小:31 KB

下载得到文件列表

数据结构课程实验(栈和队列的应用).doc

文档介绍

文档介绍:实验二栈和队列的应用
1、实验目的
(1)熟练掌握栈和队列的结构,以及这两种数据结构的特点;
(2)能够在两种存储结构上实现栈的基本运算,特别注意栈满和栈空的判断条件及描述方法;
(3)熟练掌握链队列和循环队列的基本运算,并特别注意队列满和队列空的判断条件和描述方法;
2、实验内容
利用栈的基本操作实现将任意一个十进制整数转化为R进制整数.
3、实验步骤
(1)理解栈的基本工作原理;
(2)仔细分析实验内容,给出其算法和流程图;
(3)用C语言实现该算法;
(4)给出测试数据,并分析其结果;
(5)在实验报告册上写出实验过程。
4、实验帮助
算法为:
1) 定义栈的顺序存取结构
2) 分别定义栈的基本操作(初始化栈、判栈为空、出栈、入栈等)
3) 定义一个函数用来实现上面问题:
十进制整数X和R作为形参
初始化栈
只要X不为0重复做下列动作
将X % R入栈
X=X/R
只要栈不为空重复做下列动作
栈顶出栈
输出栈顶元素
程序如下:
#define MAXSIZE 100
#define STACKABC 10
#define OK 1
#include<>
struct stack{
int *top;
int *base;
int stacksize;
};
void init(struct stack *s){
s->base=(int *)malloc(MAXSIZE*sizeof(int));
if(!s->base) exit (-1);
s->top=s->base;
s->stacksize = MAXSIZE;
}
int empty(struct stack *s){
if(s->top==s->base)
return 1;
else
return 0;
}
int push(struct stack *s,int e){
if(s->top-s->base>=s->stacksize)
{s->base=(int *)realloc(s->base,(MAXSIZE+STACKABC)*sizeof(int));
if(!s->base) exit(0);
s->top=s->base+s->stacksize;
s->stacksize+=STACKABC;
}
*s->top=e;
s->top++;
r