算法导论——队列
来源:互联网 发布:java修改全局变量 编辑:程序博客网 时间:2024/06/05 00:26
头文件queue.h如下:
#pragma once#ifndef _QUEUE_H#define _QUEUE_H#define SIZE 100class my_queue{private:using pos = char;typedef size_t poa;public:void initqueue(my_queue &q);bool queueempty(my_queue &q);int enterqueue(my_queue &q, const pos &c);int deletequeue(my_queue &q, pos &c);int gethead(my_queue &q, pos &c) const;void clearqueue(my_queue &q);pos queue[SIZE] = { 0 };poa head=0;poa tail=0;};inline void my_queue::initqueue(my_queue &q) //{this->head = 0;this->tail = 0;}bool my_queue::queueempty(my_queue &q){if (this->head == this->tail)return 1;elsereturn 0;}int my_queue::enterqueue(my_queue &q, const pos &c){if (this->tail >= SIZE-1)return 0;elsethis->queue[this->tail++] = c;return 1;}int my_queue::deletequeue(my_queue &q, pos &c){if (this->head==this->tail)return 0;elsec = this->queue[this->head++];return 1;}int my_queue::gethead(my_queue &q, pos &c) const{if (this->head <= 0)return 0;elsec = this->queue[this->head];return 1;}void my_queue::clearqueue(my_queue &q){this->head = 0;this->tail = 0;}#endif
main函数如下:
#include<iostream>#include"queue.h"using namespace std;int main(){my_queue q1;int length = 8;char temp=0;char str[] = "abcdefgh";q1.initqueue(q1);for (size_t i = 0; i < length; ++i)q1.enterqueue(q1, str[i]);q1.deletequeue(q1, temp);cout << "出队列的元素是:" << temp << endl;cout << "队列中的元素是:" << " ";if (q1.queueempty(q1))return -1;else{for (size_t i = q1.head; i < q1.tail; ++i)cout << q1.queue[i] << " ";cout << endl;}return 0;}
0 0
- 算法导论—队列
- 算法导论——队列
- 算法导论例程——队列
- 算法导论——栈与队列
- 算法导论—栈和队列
- 算法导论学习笔记——最大优先级队列
- 算法导论第六章之——优先队列
- 《算法导论》学习心得(十一)—— 队列(JAVA)
- 《算法导论》学习摘要chapter-6——优先队列
- 算法导论-----队列
- 算法导论-优先级队列
- 《算法导论》优先队列
- 算法导论—堆
- 算法导论—哈希
- 算法导论—红黑树
- 算法导论—KMP
- 算法导论—贪心算法
- 《算法导论》 6.5优先级队列
- Galera cluster-入门
- 冒泡的两种实现方法,欢迎指出不足指出。
- 研究虚表(探索多态的原理)和菱形虚拟继承
- LeetCode 476. Number Complement
- scala 提取器
- 算法导论——队列
- JMS学习一(JMS介绍)
- 2.15
- python数据挖掘数据分析pandas的介绍及简单例子
- maven笔记4--聚合与继承
- MatConvNet的CPU和GPU编译配置
- gc 垃圾回收
- .Net程序员学用Oracle系列(15):DUAL、ROWID、NULL
- Spring Security 4 Security View Fragments Example(3)