数据结构-队列
2016-04-11 23:57
381 查看
First in First Out
宏断言assert:
在头文件
在判断队列是否为空时用到过:
简单队列的实现。
循环队列的使用
宏断言assert:
在头文件
<cassert>中定义,里面为判断语句,为假则直接结束这个函数。
在判断队列是否为空时用到过:
assert(head <= tail);
简单队列的实现。
#include <iostream> #include <cassert> using namespace std; class Queue { private: int *data; int head, tail, length; public: Queue(int length_input) { data = new int[length_input]; length = length_input; head = 0; tail = -1; } ~Queue() { delete[] data; } void push(int element) { if (tail + 1 < length) { tail++; data[tail] = element; } } void output() { for (int i = head; i <= tail; i++) { cout << data[i] << " "; } cout << endl; } int front(){ assert(head <= tail); return data[head]; } void pop(){ assert(head <= tail); head+=1; } }; int main() { Queue queue(100); for (int i = 1; i <= 10; i++) { queue.push(i); } queue.output(); cout<<queue.front()<<endl; queue.pop(); queue.output(); return 0; }
循环队列的使用
#include <iostream> #include <cassert> using namespace std; class Queue { private: int *data; int head, tail, length, count; public: Queue(int length_input) { data = new int[length_input]; length = length_input; head = 0; tail = -1; count = 0; } ~Queue() { delete[] data; } bool push(int element) { if (count < length) { tail = (tail + 1) % length; data[tail] = element; count++; return true; } else { return false; } } void output() { for (int i = head; i != tail + 1; i = (i + 1) % length) { cout << data[i] << " "; } cout << endl; } int front() { assert(count>0); return data[head]; } void pop() { assert(count>0); head=(head+1)%length; count-=1; } }; int main() { Queue queue(100); for (int i = 1; i <= 10; i++) { queue.push(i); } queue.output(); cout << queue.front() << endl; queue.pop(); queue.output(); return 0; }
相关文章推荐
- C#数据结构之顺序表(SeqList)实例详解
- Lua教程(七):数据结构详解
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- C#数据结构之单链表(LinkList)实例详解
- C#线程队列用法实例分析
- 算法系列15天速成 第九天 队列
- 数据结构之Treap详解
- C语言单链队列的表示与实现实例详解
- mysql 队列 实现并发读
- C#队列Queue用法实例分析
- C#多线程处理多个队列数据的方法
- C语言循环队列的表示与实现实例详解
- 用C语言举例讲解数据结构中的算法复杂度结与顺序表
- C++循环队列实现模型
- C#内置队列类Queue用法实例
- C#数据结构之堆栈(Stack)实例详解
- C#数据结构之双向链表(DbLinkList)实例详解
- JavaScript数据结构和算法之图和图算法