队列的实现
来源:互联网 发布:蓝牙鼠标推荐 知乎 编辑:程序博客网 时间:2024/05/22 17:10
#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;
typedef struct Queue//队列
{
int * pBase;
int front;
int rear;
}QUEUE;
void init(QUEUE *pQ)
{
pQ->pBase = (int *)malloc(sizeof(int)* 6);
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)
{
cout << pQ->pBase[i] ;
i = (i + 1) % 6;
}
return;
}
bool emput_queue(QUEUE * pQ)
{
if (pQ->front == pQ->rear)
return true;
else
return false;
}
bool remove_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;
}
}
int main(void)
{
QUEUE Q;
init(&Q);
int Val;
en_queue( &Q,1);
en_queue(&Q, 2);
en_queue(&Q, 3);
en_queue(&Q, 4);
en_queue(&Q, 5);
en_queue(&Q, 6);
en_queue(&Q, 7);
en_queue(&Q, 8);
traverse_queue(&Q);
remove_queue(&Q,&Val);
cout << endl;
traverse_queue(&Q);
system("pause");
return 0;
}
- 队列的实现:顺序队列
- 队列的实现:链式队列
- 队列----循环队列的实现
- 队列实现 队列的链式结构实现
- 堆栈,队列的实现
- 链队列的实现
- 队列的实现
- 队列的实现
- java 实现的队列
- 工作队列的实现
- 工作队列的实现
- 用链表实现的队列
- 队列的实现
- 队列的实现
- 队列的实现
- 队列的数组实现
- 循环队列的实现
- 数据结构 队列的实现
- 最短路径问题
- solr学习
- OpenStack源码包含的项目
- J2EE的十三个技术——EJB之消息驱动JMS
- MFC 设置窗口的大小与位置
- 队列的实现
- 黑马程序员IOS-OC语言-构造方法
- Android学习(8)音频管理AudioManager-1
- Orcale 性能优化之索引使用
- Java中写记事本组件
- Android exploit with a Qualcomm processor (CVE-2012-4220)
- 去掉cajviewer 7.1.2 右上角的“中国知网数字出版物超市”
- 黑马程序员——Java基础——多线程(一)
- BFS求迷宫的最短路径