队列——顺序存储结构及其基本运算(非循环队列)
来源:互联网 发布:java jar main class 编辑:程序博客网 时间:2024/05/19 14:40
该文章主要介绍非循环队列的顺序存储结构以及相关运算。
头文件:SqQueue.h
template <typename T>class SqQueueClass//非循环队队列类模板{T *data; //存放队中元素int front, rear;//队头和队尾指针public://==============非循环队基本运算算法===================SqQueueClass();//构造函数~SqQueueClass();//析构函数bool QueueEmpty();//判断队列是否为空bool enQueue(T e);//进队列算法bool deQueue(T &e);//出队列算法};
源文件:SqQueue.cpp
#include <iostream>#include "SqQueue.h"const int MaxSize = 100;//=============非循环队基本运算算法=========================template <typename T>SqQueueClass<T>::SqQueueClass()//构造函数{data = new T[MaxSize];//为data分配空间front = rear = -1;//队头队尾指针置初值}template <typename T>SqQueueClass<T>::~SqQueueClass()//析构函数{delete[] data;}template <typename T>bool SqQueueClass<T>::QueueEmpty()//判断队列是否为空{return (front == rear);}template <typename T>bool SqQueueClass<T>::enQueue(T e)//进队列算法{if (rear == MaxSize - 1)return false;rear++;data[rear] = e;return true;}template <typename T>bool SqQueueClass<T>::deQueue(T &e)//出队列算法{if (front == rear)//队空下溢出return false;front++;e = data[front];return true;}
主函数:main.cpp
#include"SqQueue.cpp"#include<iostream>using namespace std;//===============非循环队基本运算算法===============void main(){SqQueueClass<char> sq;//定义一个字符顺序队sqchar e;cout << "建立一个空队sq\n";cout << "队sq" << (sq.QueueEmpty()?"空":"不空") << endl;cout << "元素a进队\n"; sq.enQueue('a');cout << "元素b进队\n"; sq.enQueue('b');cout << "元素c进队\n"; sq.enQueue('c');cout << "元素d进队\n"; sq.enQueue('d');cout << "元素e进队\n"; sq.enQueue('e');cout << "队sq" << (sq.QueueEmpty()?"空":"不空") << endl;cout << "所有元素出队次序:";while (!sq.QueueEmpty())//队不空循环{sq.deQueue(e);//出队元素ecout << e << " ";//输出元素e}cout << endl;cout << "销毁队sq" << endl;}
阅读全文
0 0
- 队列——顺序存储结构及其基本运算(非循环队列)
- 队列——顺序存储结构及其基本运算(循环队列)
- 队列——顺序存储结构及其基本运算(循环队列的另一种表达方式)
- 队列的顺序存储结构及其基本运算的实现
- 队列的顺序存储结构及其基本运算的实现
- 队列——链式存储结构及其基本运算(链队列的另一种表达方式)
- 队列——链式存储结构及其基本运算
- 队列——顺序存储结构,循环队列
- 队列的顺序存储结构---循环队列
- 队列的顺序存储结构(循环队列)
- 数据结构:队列的顺序存储结构(循环队列)
- 数据结构:队列的顺序存储结构(循环队列)
- 数据结构五—循环队列的顺序存储结构
- 栈——顺序存储结构及其基本运算
- 栈——顺序存储结构及其基本运算
- 顺序队列(非循环)
- 顺序队列(非循环)的基本操作
- 队列的顺序存储结构——循环队列 图解和代码实现
- 使用SourceTree的git命令提交代码
- AndroidStudio 优秀的第三方数据库 GreenDao
- DB2查询每个月的天数
- js判断一个时间是否在一个时间段内
- php ini_set修改配置文件的值
- 队列——顺序存储结构及其基本运算(非循环队列)
- git忽略文件.gitignore
- java基础提高篇--集合源码剖析--java集合框架
- 字节流与字符流的区别详解
- springboot整合dubbo
- iOS 图片擦除
- 深入理解Java中类加载的流程和机制
- Core Location定位
- android 性能分析之常用adb命令adb shell am start -W