实验二 栈与队列
实验目的:
(1)理解栈与队列的结构特征和运算特征,以便在实际问题背景下灵活运用。
(2)了解复杂问题的递归算法设计。
下列内容任选其一
实验内容:
1)利用辅助队列进行栈的逆置
[问题描述]
利用辅助队列将栈中的元素逆置。
[基本要求及提示]
(1)在主函数中编写菜单(基本的1.入栈;2.出栈;3.逆置;4.退出)调试运行程序。
2)利用辅助栈进行队列的逆置
[问题描述]
利用辅助栈进行队列元素逆置。
[基本要求及提示]
(1)在主函数中编写菜单(如基本的1.入队;2.出队;3.逆置;4.退出)调试运行程序。
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
#define maxqsize 100
typedef struct
{
int *base;
int *top;
int stacksize;
}SqStack;
typedef struct//队列的顺序存储结构
{
int *base;//存储空间的基地址
int front;//头指针
int rear;//尾指针
}Sqqueue;
int InitQueue(Sqqueue *Q)//初始化队列
{
Q->base=malloc(sizeof(int)*maxqsize);//申请空间
if(!Q->base)printf("error");//判断是否分配失败
Q->front=Q->rear=0;//头尾指针置为0,队列为空
}
int creatlist(SqStack *S)//初始化栈
{
S->base=(int*)malloc(MAXSIZE*sizeof(int));