【实现类】

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;
}

理论基础 —— 队列 —— 链队列相关推荐

  1. 数据结构 队列(顺序队列 循环队列 链队列)

    目录 一.引入 二.队列的定义 三.队列的抽象数据类型 四.队列的存储方式 五.队列的顺序存储(不太常用 后面5.4会给出原因) 5.1顺序存储队列的基本知识点 5.2队列的顺序存储描述 5.3顺序存 ...

  2. 【数据结构】队列(链队列、循环队列)的存储结构及基本运算(C语言)

    目录 1. 队列基本概念 2. 链队列 2.1 代码+注释 2.2 运行结果 3. 循环队列 3.1 代码+注释 3.2 运行结果 1. 队列基本概念 队列(Queue)是一种限定性线性表,它只允许在 ...

  3. c语言循环队列入列算法,C语言——循环队列和链队列的基本运算

    // 循环队列 #include #include "SeqQue.h" // 循环队列的基本运算 /* const int maxsize = 20; typedef struc ...

  4. 数据结构与算法(3-2)队列(顺序队列、循环队列与链队列)

    目录 一.顺序队列 1.存储结构 2.入队和出队 总代码 二.循环队列 总代码: 三.链队列 1.存储结构 2.入队和出队 总代码 一.顺序队列 队列特征:先进后出.后进后出. 1.存储结构 //队列 ...

  5. Java实现队列 链式存储结构

    2019独角兽企业重金招聘Python工程师标准>>> 队列的链式存储结构 示例代码如下, package hash;/*** Created with IntelliJ IDEA. ...

  6. 链队列的建立、判空、入队、出队、求长、访头、清空和销毁

    #include<iostream> using namespace std;typedef struct node {int data;struct node *next; }Node; ...

  7. 队列链式结构C/C++实现(数据结构严蔚敏版)

    1.头文件Queue.h; #include<iostream> #include<iomanip>//格式控制头文件 #include<stdlib.h> usi ...

  8. 【练习】c++分别用链队列和普通队列输出杨辉三角

    普通队列: class queue {public:queue();bool empty()const;bool full() const;int get_front(int& x)const ...

  9. 【笔记 】栈底层 循环队列的处理 链栈 链队列

    栈 队列 解决"假溢出"问题的方法: 采用循环队列方式:将数组的头尾看作是相邻的元素, 即将元素data[0]看作是data[maxlen-1]的下一个元素.如图所示. 因此,插入 ...

最新文章

  1. 一文读懂Faster R-CNN目标检测
  2. python用WMI等获取及修改windows系统信息
  3. 关于主机的思维导图_几张思维导图,让你清楚的知道ip地址怎么回事?
  4. commonJs原理解析
  5. [css] 你有没有自己写过一套UI库?说下遇到哪些难点?
  6. [Android Studio] Android Studio如何提示函数用法
  7. AVFoundation – AVAssetTrack 获取视频 音频信息
  8. 逐行创建、读取并写入txt(matlab) 生成文件夹里文件名的.bat文件
  9. 性能测试知多少---性能需求分析
  10. Maven的安装和使用
  11. pandas dataframe统计填充空值大全
  12. 《动手学深度学习》Mxnet环境搭建
  13. CentOS7 安装 7-zip 压缩工具
  14. ArangoDB教程(二)-AQL语句使用,图使用,结合WEB界面端
  15. metro,subway,tube这三个单词如何区分?
  16. 研究生学位论文文献检索小技巧——妙用谷歌学术搜索
  17. route和bridge是什么意思_桥接模式与路由模式区别
  18. 外包php技术,php外包
  19. fiddler抓包小红书app(简易版)
  20. 如何用python可视化疫情风险区?地图标记位置信息:数据爬取+地址解析+可视化

热门文章

  1. 智能驾驶系统是怎样看懂交通标志的?3张流程图给你讲明白
  2. 诺基亚:你以为他死了,他却靠这一点重回世界第二
  3. python爬虫实例手机_python爬虫实例详解
  4. 假如有人炸了支付宝的存储服务器...
  5. Mybatis-Plus 多表联查分页
  6. iframe父子级页面传值支持跨域访问javascript
  7. 【官方搭建入门】JEEWX 捷微开发环境搭建必读
  8. SQL中的CASE使用方法
  9. cycle/Pix2Pix 模型
  10. express使用JWT和httpOnly cookie进行安全验证