《算法与数据结构》实验指导书
3. 编译运行程序,观察运行情况和输出结果。
实验四 栈和队列
一、实验目的:
1.掌握栈、队列的思想及其存储实现。 2.掌握栈、队列的常见算法的程序实现。
二、实验内容:
1.采用链式存储实现栈的初始化、入栈、出栈操作。 2.采用顺序存储实现栈的初始化、入栈、出栈操作。 3.采用链式存储实现队列的初始化、入队、出队操作。 4.采用顺序存储实现循环队列的初始化、入队、出队操作。
5.在主函数中设计一个简单的菜单,分别测试上述算法。
附:参考程序为类C语言程序,非标准C语言程序,需要进行相应的修改。
#define stacksize 10 #include "stdio.h" #include <malloc.h> typedef struct {int num[stacksize]; int top;
}seqstack; /*栈定义*/
void initstack(seqstack *s) /*初始化栈*/ {s->top=-1;}
int push(seqstack *s,int e)/*入栈*/
{if(s->top==stacksize-1){printf("Stack is full!n");return 0;} s->top++;
s->num[s->top]=e;return 1; }
int pop(seqstack *s,int *e)/*出栈*/ {if(s->top==-1)return 0;