队列
2015-08-21 19:09
204 查看
#include <iostream> using namespace std; #define MAXSIZE 5//队列长度 typedef struct { int data[MAXSIZE]; int tail;//尾 int head;//头 }queue; //建立空队列 queue* creat_queue() { queue* q=NULL; if((q=(queue*)malloc(sizeof(queue)))==NULL) { free(q); return NULL; } q->tail=0; q->head=0; return q; } //判断队列是否为空 bool empty_queue(queue* q) { if(q->head==q->tail) { cout<<"empty_queue!"<<endl; return true; } else return false; } //判断队列是否满了 bool full_queue(queue* q) { if(((q->tail+1)%MAXSIZE)==(q->head)) { cout<<"full_queue!"<<endl; return true; } else return false; } //入队 bool insert_queue(queue* q,int x) { q->data[q->tail]=x; cout<<q->data[q->tail]; if(full_queue(q)) { cout<<"队列满了,不能再入队了!"<<endl; return false; } else { q->tail=((q->tail+1)%MAXSIZE); return true; } } //出队 int delete_queue(queue* q) { if(empty_queue(q)) { cout<<"队空,不能出队!"<<endl; return -1; } else { int x=q->data[q->head]; q->head=((q->head+1)%MAXSIZE); return x; } } int main(void) { //建空队列 queue* q=creat_queue(); if(q) cout<<"creat_queue is succeed!"<<endl; else cout<<"creat_queue is failed!"<<endl; //入队 for(int i=0;i<=5;i++) { if(!insert_queue(q,i)) break; } //出队 delete_queue(q); int x=delete_queue(q); cout<<q->head<<,<<x<<endl; free(q); return 0; }
相关文章推荐
- 算法系列15天速成 第九天 队列
- C语言单链队列的表示与实现实例详解
- mysql 队列 实现并发读
- C#队列Queue用法实例分析
- C#多线程处理多个队列数据的方法
- C语言循环队列的表示与实现实例详解
- C++循环队列实现模型
- C#内置队列类Queue用法实例
- Array栈方法和队列方法的特点说明
- C#通过链表实现队列的方法
- C#队列Queue多线程用法实例
- C#数据结构与算法揭秘五 栈和队列
- C++中队列的建立与操作详细解析
- PHP实现的memcache环形队列类实例
- php基于双向循环队列实现历史记录的前进后退等功能
- 队列在编程中的实际应用(php)
- Go语言的队列和堆栈实现方法
- C++队列用法实例
- PHP队列用法实例
- php实现的双向队列类实例