数据结构循环队列演示程序
2018-03-29 10:21
519 查看
#include<stdio.h>
#include <stdbool.h>
#include<malloc.h>
typedef struct queue
{
int *pBase;
int front;
int rear;
}QUEUE;
void init(QUEUE *);
bool en_queue(QUEUE *,int val);//入队
bool full_queue(QUEUE *);
bool out_queue(QUEUE *,int *);
bool emput_queue(QUEUE*);
void traverse_queue(QUEUE *);
int main(void)
{
int val;
QUEUE Q;
init (&Q);
en_queue(&Q,1);
en_queue(&Q,2);
en_queue(&Q,3);
en_queue(&Q,4);
en_queue(&Q,5);
en_queue(&Q,6);
traverse_queue(&Q);
if (out_queue(&Q,&val))
{
printf("出队成功,出队元素为%d\n",val);
}
else
{
printf("出队失败\n");
}
printf("剩余元素为\n");
traverse_queue(&Q);
return 0;
}
void init(QUEUE *pQ)
{
pQ->pBase=(int *)malloc(sizeof(int)*6);//假定长度为6,指向了24个字节的整形数组
pQ->front=0;//初始化
pQ->rear=0;//初始化
}
bool full_queue(QUEUE *pQ)
{
if((pQ->rear+1)%6==pQ->front)
return true;
else
return false;
}
bool en_queue(QUEUE *pQ,int val)
{
if(full_queue(pQ))
{
return false;
}
else
{
pQ->pBase[pQ->rear]=val;
pQ->rear=(pQ->rear+1)%6;//对数组长度取余
return true;
}
}
void traverse_queue(QUEUE *pQ)
{
int i=pQ->front;
while(i!=pQ->rear)
{
printf("%d",pQ->pBase[i]);
i=(i+1)%6;
printf("\n");
}
return;
}
bool emput_queue(QUEUE*pQ)
{
if(pQ->front==pQ->rear)
{
return true;
}
else
return false;
}
bool out_queue(QUEUE *pQ,int *pVal)
{
if(emput_queue(pQ))
{
return false;
}
else
{
*pVal=pQ->pBase[pQ->front];
pQ->front=(pQ->front+1)%6;
return true;
}
}
#include <stdbool.h>
#include<malloc.h>
typedef struct queue
{
int *pBase;
int front;
int rear;
}QUEUE;
void init(QUEUE *);
bool en_queue(QUEUE *,int val);//入队
bool full_queue(QUEUE *);
bool out_queue(QUEUE *,int *);
bool emput_queue(QUEUE*);
void traverse_queue(QUEUE *);
int main(void)
{
int val;
QUEUE Q;
init (&Q);
en_queue(&Q,1);
en_queue(&Q,2);
en_queue(&Q,3);
en_queue(&Q,4);
en_queue(&Q,5);
en_queue(&Q,6);
traverse_queue(&Q);
if (out_queue(&Q,&val))
{
printf("出队成功,出队元素为%d\n",val);
}
else
{
printf("出队失败\n");
}
printf("剩余元素为\n");
traverse_queue(&Q);
return 0;
}
void init(QUEUE *pQ)
{
pQ->pBase=(int *)malloc(sizeof(int)*6);//假定长度为6,指向了24个字节的整形数组
pQ->front=0;//初始化
pQ->rear=0;//初始化
}
bool full_queue(QUEUE *pQ)
{
if((pQ->rear+1)%6==pQ->front)
return true;
else
return false;
}
bool en_queue(QUEUE *pQ,int val)
{
if(full_queue(pQ))
{
return false;
}
else
{
pQ->pBase[pQ->rear]=val;
pQ->rear=(pQ->rear+1)%6;//对数组长度取余
return true;
}
}
void traverse_queue(QUEUE *pQ)
{
int i=pQ->front;
while(i!=pQ->rear)
{
printf("%d",pQ->pBase[i]);
i=(i+1)%6;
printf("\n");
}
return;
}
bool emput_queue(QUEUE*pQ)
{
if(pQ->front==pQ->rear)
{
return true;
}
else
return false;
}
bool out_queue(QUEUE *pQ,int *pVal)
{
if(emput_queue(pQ))
{
return false;
}
else
{
*pVal=pQ->pBase[pQ->front];
pQ->front=(pQ->front+1)%6;
return true;
}
}
相关文章推荐
- 【郝斌数据结构自学笔记】47-49_循环队列程序演示 _ 队列的具体应用
- 郝斌数据结构 47 循环队列程序演示
- 静态循环队列c程序演示
- 3-3-行编辑程序-栈和队列-第3章-《数据结构》课本源码-严蔚敏吴伟民版
- 3-8-循环队列-栈和队列-第3章-《数据结构》课本源码-严蔚敏吴伟民版
- 数据结构--循环队列的基本操作
- 数据结构 c语言实现链式循环队列(输入数字入队 输入字母出队)
- 【数据结构】循环队列的front,rear指针以及队列满的条件、计算队列长度
- 《数据结构》链队列同学程序调试修改
- 【数据结构】队列之循环队列
- 数据结构-队列:循环队列与链队列的C++模板类实现
- C语言数据结构之循环队列
- 数据结构中循环队列的清空、销毁、求队长、遍历、取首元素等操作及运用
- 数据结构Java实现——②队列--->队列的“奇葩”一循环顺序队列
- [数据结构]循环队列中判断队满与队空
- 数据结构Java实现07----队列:顺序队列&顺序循环队列、链式队列、顺序优先队列
- 数据结构队列C++实现 链式和循环
- 循环队列演示
- 数据结构--顺序循环队列和链式队列
- 数据结构(ZKNU OJ)猴子选大王(循环队列解法)