[数据结构]队列的实现-C++
来源:互联网 发布:淘宝客服催好评用语 编辑:程序博客网 时间:2024/06/06 15:51
基于数组的循环队列的实现:
CycleQueueBaseArray.h:
#pragma oncetemplate <class T>class CycleQueueBaseArray {private:T *array;int maxLength;int head;int tail;public:CycleQueueBaseArray();CycleQueueBaseArray(int length);bool offer(T value);T poll();T peek();bool isEmpty();bool isFull();};
CycleQueueBaseArray.cpp:
#include"CycleQueueBaseArray.h"template <class T> CycleQueueBaseArray<T>::CycleQueueBaseArray() {array = new T[64];maxLength = 64;head = 0;tail = 0;}template <class T> CycleQueueBaseArray<T>::CycleQueueBaseArray(int length) {array = new T[length];maxLength = length;head = 0;tail = 0;}template <class T> bool CycleQueueBaseArray<T>::offer(T value) {if (!isFull()) {array[tail] = value;tail = (tail + 1) % maxLength;return true;}else {return false;}}template <class T> T CycleQueueBaseArray<T>::poll() {if (!isEmpty()) {head = (head + 1) % maxLength;return array[(head-1)%maxLength];}else {return NULL;}}template <class T> T CycleQueueBaseArray<T>::peek() {if (!isEmpty()) {return array[head];}else {return NULL;}}template <class T> bool CycleQueueBaseArray<T>::isEmpty() {if (head == tail) {return true;}else {return false;}}template <class T> bool CycleQueueBaseArray<T>::isFull() {if (head == (tail + 1) % maxLength) {return true;}else {return false;}}
基于循环双指针链表的循环队列实现:
(循环双指针链表的实现在链表的实现)
CycleQueueBaseCycleLinkedList.h:
#pragma once#include"CycleLinkedList.h"template <class T>class CycleQueueBaseCycleLinkedList {private:CycleLinkedList<T> list;public:CycleQueueBaseCycleLinkedList();bool offer(T value);T poll();T peek();bool isEmpty();};
CycleQueueBaseCycleLinkedList.cpp:
#include"CycleQueueBaseCycleLinkedList.h"template <class T> CycleQueueBaseCycleLinkedList<T>::CycleQueueBaseCycleLinkedList() {}template <class T> bool CycleQueueBaseCycleLinkedList<T>::offer(T value) {return list.addAtTail(value);}template <class T> T CycleQueueBaseCycleLinkedList<T>::poll() {if (isEmpty()) {return NULL;}T value = list.getHead();list.deleteHead();return value;}template <class T> T CycleQueueBaseCycleLinkedList<T>::peek() {if (isEmpty()) {return NULL;}else {return list.getHead();}}template <class T> bool CycleQueueBaseCycleLinkedList<T>::isEmpty() {return list.isEmpty();}
阅读全文
0 0
- C数据结构实现队列
- 数据结构之队列的实现(c语言)
- 数据结构的C实现_链式队列
- 数据结构的C实现_循环队列
- 数据结构循环队列的实现c程序
- [数据结构]C语言队列的实现
- 数据结构的C实现_循环队列
- 【数据结构】顺序队列的实现(c++)
- 【数据结构】循环队列的实现(c++)
- 数据结构之队列的实现【C++】
- [数据结构]队列的C语言简单实现
- 【数据结构】数据结构C语言的实现(队列)
- 数据结构.队列(C语言实现)
- 数据结构---队列C语言实现
- 数据结构之队列(C实现)
- 数据结构 队列的实现
- 数据结构:队列的实现
- 【数据结构】 队列的实现
- 分页的第四种方式
- Camtasia Studio 9录制高清、超清视频教程
- pexpect之ssh_scp02
- 完全掌握反射的各种用法
- Leftmost Digit(数论)
- [数据结构]队列的实现-C++
- C
- spring_由注解实现AOP面向切面编程_实现动态代理
- 文
- HSSFShape
- [BZOJ1835][ZJOI2010]base 基站选址
- WinForm 实现鼠标拖动控件跟随效果(图文)
- 配置maven镜像
- android 联机下100层小游戏开发心得