数据结构代码实现(循环队列的实现,数组)
来源:互联网 发布:手机网络抓包工具 编辑:程序博客网 时间:2024/05/22 20:28
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#define MAXQSIZE 6
typedef struct QUEUE
{
int *pBase;
int front;
int rear;
}QUEUE,*PQUEUE;
void init_queue(PQUEUE);
bool traverse_queue(PQUEUE);
bool en_queue(PQUEUE,int val);
bool de_queue(PQUEUE,int *val);
bool is_full(PQUEUE);
bool is_empty(PQUEUE);
#include <malloc.h>
#include <stdlib.h>
#define MAXQSIZE 6
typedef struct QUEUE
{
int *pBase;
int front;
int rear;
}QUEUE,*PQUEUE;
void init_queue(PQUEUE);
bool traverse_queue(PQUEUE);
bool en_queue(PQUEUE,int val);
bool de_queue(PQUEUE,int *val);
bool is_full(PQUEUE);
bool is_empty(PQUEUE);
int main()
{
QUEUE q;
int val;
init_queue(&q);
en_queue(&q,5);
en_queue(&q,4);
en_queue(&q,3);
en_queue(&q,2);
en_queue(&q,1);
de_queue(&q,&val);
printf("you delete is %d\n", val);
traverse_queue(&q);
return 0;
}
void init_queue(PQUEUE pQ)
{
pQ->pBase=(int *)malloc(sizeof(int)*MAXQSIZE);
if(NULL==pQ->pBase)
{
printf("malloc failure\n");
exit (-1);
}
else
{
pQ->front=0;
pQ->rear=0;
}
return ;
}
{
QUEUE q;
int val;
init_queue(&q);
en_queue(&q,5);
en_queue(&q,4);
en_queue(&q,3);
en_queue(&q,2);
en_queue(&q,1);
de_queue(&q,&val);
printf("you delete is %d\n", val);
traverse_queue(&q);
return 0;
}
void init_queue(PQUEUE pQ)
{
pQ->pBase=(int *)malloc(sizeof(int)*MAXQSIZE);
if(NULL==pQ->pBase)
{
printf("malloc failure\n");
exit (-1);
}
else
{
pQ->front=0;
pQ->rear=0;
}
return ;
}
bool is_empty(PQUEUE pQ)
{
if(pQ->rear==pQ->front)
return true;
else
return false;
}
bool is_full(PQUEUE pQ)
{
if((pQ->rear+1)%MAXQSIZE==pQ->front)
return true;
else
return false;
}
bool traverse_queue(PQUEUE pQ)
{
if(is_empty(pQ))
{
printf("queue is empty\n");
return false;
}
else
{
int i=pQ->front;
while(i!=pQ->rear)
{
printf("%d ",pQ->pBase[i]);
i++;
i=i%MAXQSIZE;
}
return true;
}
}
bool en_queue(PQUEUE pQ,int val)
{
if((is_full(pQ)))
{
printf("queue is full \n");
return false;
}
else
{
pQ->pBase[pQ->rear]=val;
pQ->rear=(pQ->rear+1)%MAXQSIZE;
}
return true;
}
bool de_queue(PQUEUE pQ,int *val)
{
if(is_empty(pQ))
{
printf("queue is empty \n");
return false;
}
else
{
*val=pQ->pBase[pQ->front];
pQ->front=(pQ->front+1)%MAXQSIZE;
}
return true;
}
{
if((is_full(pQ)))
{
printf("queue is full \n");
return false;
}
else
{
pQ->pBase[pQ->rear]=val;
pQ->rear=(pQ->rear+1)%MAXQSIZE;
}
return true;
}
bool de_queue(PQUEUE pQ,int *val)
{
if(is_empty(pQ))
{
printf("queue is empty \n");
return false;
}
else
{
*val=pQ->pBase[pQ->front];
pQ->front=(pQ->front+1)%MAXQSIZE;
}
return true;
}
阅读全文
0 0
- 数据结构代码实现(循环队列的实现,数组)
- [数据结构] 队列的循环数组实现
- 【C++数据结构】数组循环队列的实现
- 数据结构:队列(循环数组实现)
- 数据结构(一) -- 循环队列数组实现
- 数据结构-循环数组实现队列
- 数据结构(java语言描述)-- 队列的循环数组实现
- 数据结构 -- 队列 & 循环队列 -- 数组实现
- 队列的数组实现(循环队列)
- 【数据结构】循环队列的实现(c++)
- 数据结构之循环数组实现队列
- 数据结构之——基于数组实现的循环队列
- 数据结构之队列(设计并实现一个自己的队列:循环数组+扩容策略)
- 看数据结构写代码(16)顺序队列的实现(循环队列)
- 循环队列的数组实现
- 循环队列的数组实现!!
- 循环数组队列的实现
- 数据结构-->(循环)队列 【队列的顺序实现】ADT
- 多态(Polymorphism)的实现机制(下)--Java篇
- docker报错FATA [0000] Get http:///var/run/docker.sock/v1.17/version:dial unix /var/run/docker.sock(FAT
- 【hdu 2066】 一个人的旅行
- 运算符与分支结构
- Linux-使用命令安装gcc/g++, gdb, vim
- 数据结构代码实现(循环队列的实现,数组)
- JQuery划过表格变色
- Redis的五种存储类型和其应用场景
- 随机数版quicksort
- Pycharm调用同级目录下的py脚本bug
- 欢迎使用CSDN-markdown编辑器
- 排序_插入排序
- Java模拟耗时任务异步执行
- Token逐渐认识