用一个单链表L实现一个栈(算法导论第十章10.2-2题)
用一个单链表L实现一个栈(算法导论第十章10.2-2题)
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;
public:Single_L(){head = nullptr;}
};
template<typename T>
void push(Single_L<T>& l,T key)
{HalfNode<T>* node = new HalfNode<T>(key);if(l.head != nullptr){node->next = l.head;}l.head = node;
}
template<typename T>
T pop(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) {push(singleL,i);}for (int i = 0; i < size; ++i) {cout<<pop(singleL)<<" ";}
用一个单链表L实现一个栈(算法导论第十章10.2-2题)相关推荐
- 用一个单链表L实现一个队列(算法导论第十章10.2-3)
用一个单链表L实现一个队列(算法导论第十章10.2-3) 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 ...
最新文章
- 深入浅出 RecyclerView
- Memtest86-7.1内存测试工具
- .jar中没有主清单属性_IDEA中spring boot helloword打包运行-0228-2020
- python的盈利模式_八大盈利模式是什么?一篇文教会你盈利模式分析!
- IntelliJ IDEA for Mac 如何配置项目模块的源代码根目录_源码文件的根目录
- EasyDSS高性能流媒体服务器前端重构(五)- webpack + vue-router 开发单页面前端实现按需加载 - 副本...
- mysql怎么打开php文件_如何打开php文件
- 解决报错: The name tf.app.run is deprecated. Please use tf.compat.v1.app.run instead.
- ITIL4服务管理的新思路与实践案例介绍
- 因果法制体系轮回框架的崛起
- linux 中压缩文件夹命令行,Linux下压缩文件夹命令使用
- 宋朝五子登科家族金榜进士涂大任后裔在松滋
- 脚本之家电子书下载:https://www.jb51.net/books/
- 路由器连接路由器设置方法
- python爬取选股宝(https://xuangubao.cn)之二度尝试
- 15个C语言“谜题”,有你知道的吗?
- 6-3 每个单词的首字母改为大写 (10 分)
- 实现统一社会信用代码校验
- 雅虎、百度、谷歌三大巨头比拼社区化搜索
- 2021级新生程序设计班级天梯赛:1-6 《从你的全世界路过》
热门文章
- C语言试题二十九之编写函数int function(int lim,int aa[max])求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。
- WireShark抓DNS请求和回复数据报的分析
- java之通过FileChannel实现文件复制
- LeetCode之Add Digits
- 字符串之将整数字符串转成整数值
- Android之面试题精选,自己收藏下
- python typeerror* wants int_python-TypeError:’int’对象是不可迭代的?
- 几何学中关于相交圆的这个定理,你还记得吗?
- 最全高考分数线出炉!!查了分后,这届学生为了过线真是太拼了.......
- 我的狗丢了,所以我能加你微信吗? | 今日最佳