数组实现队列 C++实现(2)
2016-04-26 09:55
501 查看
/* * File name : LinkLiQt.cpp * Function : 数组实现队列 C++实现 数组a[0] 一端为head 当 head==tail时为空 tail总指向 队尾元素的下一位置 * Created on : 2016年4月25日 * Author : beijiwei@qq.com * Copyright : 欢迎大家和我一起交流学习,转载请保持源文件的完整性。 任何单位和个人不经本人允许不得用于商业用途 */ #include <cstdio> #include <iostream> using namespace std; #define MAX 10 typedef int Elem_t; typedef struct Aqueue { Elem_t data[MAX]; int head; int tail; }Aqueue; void queue_init(Aqueue & Q); void queue_clear(Aqueue & Q); bool queue_is_empty(Aqueue & Q); bool queue_in(Aqueue & Q, Elem_t elem); bool queue_out(Aqueue & Q, Elem_t &elem); int queue_get_length(Aqueue & Q); bool queue_get_head(Aqueue & Q, Elem_t &elem); int main(int argc, char** argv) { Aqueue aq; Elem_t elem; queue_init(aq); cout << "queue is empty ? " << queue_is_empty(aq) << endl; for (int i = 0; i < 11; i++) { queue_in(aq, i + 10); } cout << "The length of queue is " << queue_get_length(aq) << endl; queue_get_head(aq, elem); cout << "The head of queue is " << elem<< endl; for (int i = 0; i < 11; i++) { queue_out(aq, elem); if (i == 3) { cout << "queue is empty ? " << queue_is_empty(aq) << endl; cout << "The length of queue is " << queue_get_length(aq) << endl; cout << "The head of queue is " << elem << endl; } } return 0; } void queue_init(Aqueue & Q) { Q.head = 0; Q.tail = 0; } void queue_clear(Aqueue & Q) { Q.head = 0; Q.tail = 0; } bool queue_get_head(Aqueue & Q, Elem_t &elem) { if (Q.head == Q.tail) { cout << "queue is empty can not get" << endl; return false; } elem = Q.data[Q.head]; return true; } bool queue_is_empty(Aqueue & Q) { return (Q.head == Q.tail) ? true : false; } bool queue_in(Aqueue & Q, Elem_t elem) { if (Q.tail == MAX) { cout << "can not in, queue is full" << endl; return false; } Q.data[Q.tail++] = elem; return true; } bool queue_out(Aqueue & Q, Elem_t &elem) { if (Q.head == Q.tail) { cout << "queue is empty can not out" << endl; return false; } elem = Q.data[Q.head++]; return true; } int queue_get_length(Aqueue & Q) { return Q.tail -Q.head; }
相关文章推荐
- 关于c++常量定义
- c/c++ 数字转成字符串, 字符串转成数字
- C++中产生随机数
- C++中 public protected private 类成员的访问
- 关于优化C++的小知识
- 关于C++中的常量成员函数
- C++中string类对象的成员函数c_str()与C语言中字符串的联系
- C++读取配置文件
- C语言之程序编程规范
- c语言 统计数组中不同字符的个数
- 【运动控制】C++接口要求
- 值得推荐的C/C++框架和库
- Effective C++ 55个条款
- Dev CPP 中头文件样例(信息学奥赛用,前7行必须滴)
- APM飞控常用的C++函数
- 实例讲解C++ 双链表基本操作
- gdb命令学习
- c++中深拷贝与浅拷贝
- C语言 生成集合的幂集
- c++作业4