用一个单链表L实现一个队列(算法导论第十章10.2-3)
用一个单链表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)相关推荐
- 用一个单链表L实现一个栈(算法导论第十章10.2-2题)
用一个单链表L实现一个栈(算法导论第十章10.2-2题) template<typename T> class HalfNode {public:T key;HalfNode* next; ...
- 设计一个算法,删除一个单链表L中元素值最大的结点(假设最大值结点是唯一的)
设计一个算法,删除一个单链表L中元素值最大的结点(假设最大值结点是唯一的). #include <stdio.h> #include<malloc.h> typedef str ...
- 给定一个n节点的二叉树,写出一个O(n)时间非递归过程,将该树每个节点关键字输出,可以使用一个栈作为辅助数据结构(算法导论第十章10.4-3)
给定一个n节点的二叉树,写出一个O(n)时间非递归过程,将该树每个节点关键字输出,可以使用一个栈作为辅助数据结构 (算法导论第十章10.4-3) template<typename T> ...
- 给定一个n节点的二叉树,写出一个O(n)时间递归过程,将该树每个节点关键字输出(算法导论第十章10.4-2)
给定一个n节点的二叉树,写出一个O(n)时间递归过程,将该树每个节点关键字输出 (算法导论第十章10.4-2) #include <iostream> template<typena ...
- 数据结构:假设有一个带头结点的单链表L,每个结点值由单个数字、小写字母和大写字母构成。设计一个算法将其拆分成3个带头结点的单链表L1、L2和L3,L1包含L中的所有数字结点,L2包含L中的所有小写字母
假设有一个带头结点的单链表L,每个结点值由单个数字.小写字母和大写字母构成.设计一个算法将其拆分成3个带头结点的单链表L1.L2和L3,L1包含L中的所有数字结点,L2包含L中的所有小写字母结点,L3 ...
- c语言给定一个单链表输入k,C语言实现单链表(不带头结点)的基本操作
链表在数据结构和算法中的重要性不言而喻.这里我们要用C来实现链表(单链表)中的基本操作.对于链表的基本概念请参考<数据结构与算法之链表>这篇博客.示例代码上传至 https://githu ...
- 将两个单链表合并为一个单链表
将两个单链表合并为一个单链表(C语言实现) 目的:掌握单链表的应用和算法设计 内容:L1 =(x1, x2, -, xn ),L2 =(y1, y2, -, ym ),他们是两个线性表,采用带头结点的 ...
- 判断一个单链表是否有环,若有,找出环的入口节点
题目:如何判断一个单链表是否有环?若有环,如何找出环的入口节点. 一.单链表是否有环 思路分析: 单链表有环,是指单链表中某个节点的next指针域指向的是链表中在它之前的某一个节点,这样在链表的尾部形 ...
- 数据结构例16.试设计一个算法, 使得在一个有序的单链表中插入一个元素后仍然有序。
/* 16.试设计一个算法, 使得在一个有序的单链表中插入一个元素后仍然有序. */ # include <iostream> # include <stdlib.h> # i ...
最新文章
- TIOBE 6月编程语言排行榜:Python势不可挡
- python开发环境的搭建和设置
- 数据结构第六篇——顺序存储结构与链式存储结构的特点
- 研究人员:Intel 的 VISA 漏洞可访问计算机中所有数据
- 一起谈.NET技术,C#中的lock关键字
- windows dll 学习
- OpenPose 基本理念
- c语言中power是什么变量,c语言学习新手必看 power by vcok.com[转载]
- 联通路由器设置FTP服务器,做家庭储存云盘
- 微信小程序实现物流步骤条
- android netcfg命令,Android netcfg
- prince和学生们侃侃而谈系列03
- 【光斑PSF处理】激光光斑数据处理含matlab源码-含文档【0102期】
- JavaScript前端数据呈现——Table会拐弯的column,数据分多列展示
- php微信摇一摇开发文档,摇一摇关注的JSAPI
- 哪个ppt模板网站好
- 利用python计算圆球的体积_python计算圆周长、面积、球体体积并画出圆
- 飞机气动导数的插值计算_Matlab
- BFS、DFS复杂度分析(时间、空间)
- 七面蚂蚁金服,超硬核面经,已拿Offer!!
热门文章
- ENVI修复图像坏点扩展补丁
- C语言之去掉https链接的默认443端口
- linux之让终端支持C++11/14编译cpp文件
- IOS学习笔记之二十二(文件io)
- Android之android.os.NetworkOnMainThreadException异常
- Android之SurfaceView简介(一)
- 10分钟做一个新闻问答web站点[iVX低代码实战]
- 数学到底有多难难难难?看完这个,瞬间觉得智商都提高了!
- 送什么给女朋友最致命?
- 数学界最恐怖的存在,学过数学的人,一辈子都不会忘记!