理论基础 —— 队列 —— 链队列
【实现类】
template<class T>
struct Node{T data;Node *next;
};
template<class T>
class linkQueue{
public:linkQueue();~linkQueue();void push(T x);//入队T pop();//出队bool empty();//判断队列是否为空T getFront();//获取队首元素
private:Node<T> *head,*tail;
};
【构造函数】
template <class T>
linkQueue<T>::linkQueue(){Node<T> s=new Node<T>;//创建一个头结点s->next=NULL;head=tail=s;//队首与队尾指针指向头结点
}
【析构函数】
template<class T>
linkQueue<T>::~linkQueue(){while(head!=NULL){Node<T> q=head;//暂存要被释放的结点head=head->next;//first指向要被释放的结点的下一个结点delete q;//删除结点}
}
【入队】
template <class T>
void linkQueue<T>::push(T x){//入队Node<T> s=new Node<T>;//新申请结点s->data=x;s->next=NULL;tail->next=s;//结点s插到队尾tail=s;
}
【出队】
template <class T>
T linkQueue<T>::pop(){//出队if(head==tail)throw "下溢";Node<T> p=new Node<T>;p=head->next;T x=p->data;//暂存出队结点head->next=p->next;if(p->next==NULL)//判断队列此时是否为空tail=head;delete p;return x;
}
【判断是否为空】
template<class T>
bool linkQueue<T>::empty(){//判断队列是否为空if(head==tail)return true;return false;
}
【获取队首元素】
template<class T>
T linkQueue<T>::getFront(){//获取队首元素if(head==tail)throw "下溢";return head->next->data;
}
理论基础 —— 队列 —— 链队列相关推荐
- 数据结构 队列(顺序队列 循环队列 链队列)
目录 一.引入 二.队列的定义 三.队列的抽象数据类型 四.队列的存储方式 五.队列的顺序存储(不太常用 后面5.4会给出原因) 5.1顺序存储队列的基本知识点 5.2队列的顺序存储描述 5.3顺序存 ...
- 【数据结构】队列(链队列、循环队列)的存储结构及基本运算(C语言)
目录 1. 队列基本概念 2. 链队列 2.1 代码+注释 2.2 运行结果 3. 循环队列 3.1 代码+注释 3.2 运行结果 1. 队列基本概念 队列(Queue)是一种限定性线性表,它只允许在 ...
- c语言循环队列入列算法,C语言——循环队列和链队列的基本运算
// 循环队列 #include #include "SeqQue.h" // 循环队列的基本运算 /* const int maxsize = 20; typedef struc ...
- 数据结构与算法(3-2)队列(顺序队列、循环队列与链队列)
目录 一.顺序队列 1.存储结构 2.入队和出队 总代码 二.循环队列 总代码: 三.链队列 1.存储结构 2.入队和出队 总代码 一.顺序队列 队列特征:先进后出.后进后出. 1.存储结构 //队列 ...
- Java实现队列 链式存储结构
2019独角兽企业重金招聘Python工程师标准>>> 队列的链式存储结构 示例代码如下, package hash;/*** Created with IntelliJ IDEA. ...
- 链队列的建立、判空、入队、出队、求长、访头、清空和销毁
#include<iostream> using namespace std;typedef struct node {int data;struct node *next; }Node; ...
- 队列链式结构C/C++实现(数据结构严蔚敏版)
1.头文件Queue.h; #include<iostream> #include<iomanip>//格式控制头文件 #include<stdlib.h> usi ...
- 【练习】c++分别用链队列和普通队列输出杨辉三角
普通队列: class queue {public:queue();bool empty()const;bool full() const;int get_front(int& x)const ...
- 【笔记 】栈底层 循环队列的处理 链栈 链队列
栈 队列 解决"假溢出"问题的方法: 采用循环队列方式:将数组的头尾看作是相邻的元素, 即将元素data[0]看作是data[maxlen-1]的下一个元素.如图所示. 因此,插入 ...
最新文章
- 一文读懂Faster R-CNN目标检测
- python用WMI等获取及修改windows系统信息
- 关于主机的思维导图_几张思维导图,让你清楚的知道ip地址怎么回事?
- commonJs原理解析
- [css] 你有没有自己写过一套UI库?说下遇到哪些难点?
- [Android Studio] Android Studio如何提示函数用法
- AVFoundation – AVAssetTrack 获取视频 音频信息
- 逐行创建、读取并写入txt(matlab) 生成文件夹里文件名的.bat文件
- 性能测试知多少---性能需求分析
- Maven的安装和使用
- pandas dataframe统计填充空值大全
- 《动手学深度学习》Mxnet环境搭建
- CentOS7 安装 7-zip 压缩工具
- ArangoDB教程(二)-AQL语句使用,图使用,结合WEB界面端
- metro,subway,tube这三个单词如何区分?
- 研究生学位论文文献检索小技巧——妙用谷歌学术搜索
- route和bridge是什么意思_桥接模式与路由模式区别
- 外包php技术,php外包
- fiddler抓包小红书app(简易版)
- 如何用python可视化疫情风险区?地图标记位置信息:数据爬取+地址解析+可视化