用一个单链表L实现一个队列(算法导论第十章10.2-3)

template<typename T>
class HalfNode
{public:T key;HalfNode* next;
public:HalfNode(){next = nullptr;};HalfNode(const T key):key(key){next = nullptr;};
};
template<typename T>
class Single_L
{public:HalfNode<T> *head;HalfNode<T> *tail;
public:Single_L(){tail = head = nullptr;}
};
template<typename T>
void enqueue(Single_L<T> &l,T key)
{HalfNode<T>* node = new HalfNode<T>(key);if(l.head == nullptr){l.head = l.tail = node;}else{l.tail->next = node;l.tail = node;}
}
template<typename T>
T dequeue(Single_L<T> &l)
{if(l.head == nullptr)throw "underflow";HalfNode<T>* node = l.head;l.head = l.head->next;T  t = node->key;delete node;return t;
}

测试代码

    int size = 5;Single_L<int> singleL;for (int i = 0; i < size; ++i) {enqueue(singleL,i);}for (int i = 0; i < size; ++i) {cout<<dequeue(singleL)<<" ";}

用一个单链表L实现一个队列(算法导论第十章10.2-3)相关推荐

  1. 用一个单链表L实现一个栈(算法导论第十章10.2-2题)

    用一个单链表L实现一个栈(算法导论第十章10.2-2题) template<typename T> class HalfNode {public:T key;HalfNode* next; ...

  2. 设计一个算法,删除一个单链表L中元素值最大的结点(假设最大值结点是唯一的)

    设计一个算法,删除一个单链表L中元素值最大的结点(假设最大值结点是唯一的). #include <stdio.h> #include<malloc.h> typedef str ...

  3. 给定一个n节点的二叉树,写出一个O(n)时间非递归过程,将该树每个节点关键字输出,可以使用一个栈作为辅助数据结构(算法导论第十章10.4-3)

    给定一个n节点的二叉树,写出一个O(n)时间非递归过程,将该树每个节点关键字输出,可以使用一个栈作为辅助数据结构 (算法导论第十章10.4-3) template<typename T> ...

  4. 给定一个n节点的二叉树,写出一个O(n)时间递归过程,将该树每个节点关键字输出(算法导论第十章10.4-2)

    给定一个n节点的二叉树,写出一个O(n)时间递归过程,将该树每个节点关键字输出 (算法导论第十章10.4-2) #include <iostream> template<typena ...

  5. 数据结构:假设有一个带头结点的单链表L,每个结点值由单个数字、小写字母和大写字母构成。设计一个算法将其拆分成3个带头结点的单链表L1、L2和L3,L1包含L中的所有数字结点,L2包含L中的所有小写字母

    假设有一个带头结点的单链表L,每个结点值由单个数字.小写字母和大写字母构成.设计一个算法将其拆分成3个带头结点的单链表L1.L2和L3,L1包含L中的所有数字结点,L2包含L中的所有小写字母结点,L3 ...

  6. c语言给定一个单链表输入k,C语言实现单链表(不带头结点)的基本操作

    链表在数据结构和算法中的重要性不言而喻.这里我们要用C来实现链表(单链表)中的基本操作.对于链表的基本概念请参考<数据结构与算法之链表>这篇博客.示例代码上传至 https://githu ...

  7. 将两个单链表合并为一个单链表

    将两个单链表合并为一个单链表(C语言实现) 目的:掌握单链表的应用和算法设计 内容:L1 =(x1, x2, -, xn ),L2 =(y1, y2, -, ym ),他们是两个线性表,采用带头结点的 ...

  8. 判断一个单链表是否有环,若有,找出环的入口节点

    题目:如何判断一个单链表是否有环?若有环,如何找出环的入口节点. 一.单链表是否有环 思路分析: 单链表有环,是指单链表中某个节点的next指针域指向的是链表中在它之前的某一个节点,这样在链表的尾部形 ...

  9. 数据结构例16.试设计一个算法, 使得在一个有序的单链表中插入一个元素后仍然有序。

    /* 16.试设计一个算法, 使得在一个有序的单链表中插入一个元素后仍然有序. */ # include <iostream> # include <stdlib.h> # i ...

最新文章

  1. TIOBE 6月编程语言排行榜:Python势不可挡
  2. python开发环境的搭建和设置
  3. 数据结构第六篇——顺序存储结构与链式存储结构的特点
  4. 研究人员:Intel 的 VISA 漏洞可访问计算机中所有数据
  5. 一起谈.NET技术,C#中的lock关键字
  6. windows dll 学习
  7. OpenPose 基本理念
  8. c语言中power是什么变量,c语言学习新手必看 power by vcok.com[转载]
  9. 联通路由器设置FTP服务器,做家庭储存云盘
  10. 微信小程序实现物流步骤条
  11. android netcfg命令,Android netcfg
  12. prince和学生们侃侃而谈系列03
  13. 【光斑PSF处理】激光光斑数据处理含matlab源码-含文档【0102期】
  14. JavaScript前端数据呈现——Table会拐弯的column,数据分多列展示
  15. php微信摇一摇开发文档,摇一摇关注的JSAPI
  16. 哪个ppt模板网站好
  17. 利用python计算圆球的体积_python计算圆周长、面积、球体体积并画出圆
  18. 飞机气动导数的插值计算_Matlab
  19. BFS、DFS复杂度分析(时间、空间)
  20. 七面蚂蚁金服,超硬核面经,已拿Offer!!

热门文章

  1. ENVI修复图像坏点扩展补丁
  2. C语言之去掉https链接的默认443端口
  3. linux之让终端支持C++11/14编译cpp文件
  4. IOS学习笔记之二十二(文件io)
  5. Android之android.os.NetworkOnMainThreadException异常
  6. Android之SurfaceView简介(一)
  7. 10分钟做一个新闻问答web站点[iVX低代码实战]
  8. 数学到底有多难难难难?看完这个,瞬间觉得智商都提高了!
  9. 送什么给女朋友最致命?
  10. 数学界最恐怖的存在,学过数学的人,一辈子都不会忘记!