软件设计师教程 数据结构之循环队列的实现 (C/C++语言)
2012-03-04 23:39
756 查看
#include<stdio.h>
#include<malloc.h>
#define MAXSIZE 100
typedef struct
{
int *base;
int front;
int rear;
}SqQueue;
void Init_SqQueue(SqQueue *q) //初始化循环队列
{
q->base=(int *)malloc (MAXSIZE * sizeof(int));
if (!q->base) printf("error!\n");
q->front=0;
q->rear=0;
}
void EnSqQueue(SqQueue *q,int e) //入队列
{
if ((q->rear+1)%MAXSIZE==q->front)
printf("error!");
q->base[q->rear]=e;
q->rear=(q->rear+1)%MAXSIZE;
}
void DeQueue(SqQueue *q) //出队列
{
if (q->front==q->rear)
printf("error!");
int e=q->base[q->front];
q->front=(q->front+1)%MAXSIZE;
}
void main()
{
SqQueue *q;
q=new SqQueue; // 注意要new循环队列
Init_SqQueue(q); //初始化循环队列
EnSqQueue(q,32); //入队列
EnSqQueue(q,22);
printf("对头指向的元素为:%d\n",q->base[q->front]); //注意q->front,q->rear都是索引号,只有q->base[q->front]才指向对应元素
DeQueue(q); //出队列,删除了32,此时q->front指向22
printf("出对后,对头指向的元素为:%d\n",q->base[q->front]); //输出此时队头指向的元素
}
运行后的结果:
#include<malloc.h>
#define MAXSIZE 100
typedef struct
{
int *base;
int front;
int rear;
}SqQueue;
void Init_SqQueue(SqQueue *q) //初始化循环队列
{
q->base=(int *)malloc (MAXSIZE * sizeof(int));
if (!q->base) printf("error!\n");
q->front=0;
q->rear=0;
}
void EnSqQueue(SqQueue *q,int e) //入队列
{
if ((q->rear+1)%MAXSIZE==q->front)
printf("error!");
q->base[q->rear]=e;
q->rear=(q->rear+1)%MAXSIZE;
}
void DeQueue(SqQueue *q) //出队列
{
if (q->front==q->rear)
printf("error!");
int e=q->base[q->front];
q->front=(q->front+1)%MAXSIZE;
}
void main()
{
SqQueue *q;
q=new SqQueue; // 注意要new循环队列
Init_SqQueue(q); //初始化循环队列
EnSqQueue(q,32); //入队列
EnSqQueue(q,22);
printf("对头指向的元素为:%d\n",q->base[q->front]); //注意q->front,q->rear都是索引号,只有q->base[q->front]才指向对应元素
DeQueue(q); //出队列,删除了32,此时q->front指向22
printf("出对后,对头指向的元素为:%d\n",q->base[q->front]); //输出此时队头指向的元素
}
运行后的结果:
相关文章推荐
- C++数据结构之实现循环顺序队列
- 软件设计师教程 数据结构之线性链表的实现 (C/C++语言)
- 数据结构基础——循环队列的C++实现
- 数据结构之C/C++实现循环队列
- 数据结构之循环队列(顺序表存储)——C++模板类实现
- 数据结构之循环队列(面向对象思想c++实现)
- c++实现顺序循环队列结构,简易队列
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 数据结构:二项队列原理及其C++实现
- 数据结构——队列——C++实现队列及其操作
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 数据结构基础(7) --循环队列的设计与实现
- 数据结构基础之循环队列C语言实现
- C++ 数据结构实现两个栈实现一个队列
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 数据结构之循环队列c语言实现
- 数据结构基础(7) --循环队列的设计与实现
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 数据结构基础(7) --循环队列的设计与实现
- 看数据结构写代码(16)顺序队列的实现(循环队列)