用一个单链表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题)相关推荐

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

    用一个单链表L实现一个队列(算法导论第十章10.2-3) 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. 深入浅出 RecyclerView
  2. Memtest86-7.1内存测试工具
  3. .jar中没有主清单属性_IDEA中spring boot helloword打包运行-0228-2020
  4. python的盈利模式_八大盈利模式是什么?一篇文教会你盈利模式分析!
  5. IntelliJ IDEA for Mac 如何配置项目模块的源代码根目录_源码文件的根目录
  6. EasyDSS高性能流媒体服务器前端重构(五)- webpack + vue-router 开发单页面前端实现按需加载 - 副本...
  7. mysql怎么打开php文件_如何打开php文件
  8. 解决报错: The name tf.app.run is deprecated. Please use tf.compat.v1.app.run instead.
  9. ITIL4服务管理的新思路与实践案例介绍
  10. 因果法制体系轮回框架的崛起
  11. linux 中压缩文件夹命令行,Linux下压缩文件夹命令使用
  12. 宋朝五子登科家族金榜进士涂大任后裔在松滋
  13. 脚本之家电子书下载:https://www.jb51.net/books/
  14. 路由器连接路由器设置方法
  15. python爬取选股宝(https://xuangubao.cn)之二度尝试
  16. 15个C语言“谜题”,有你知道的吗?
  17. 6-3 每个单词的首字母改为大写 (10 分)
  18. 实现统一社会信用代码校验
  19. 雅虎、百度、谷歌三大巨头比拼社区化搜索
  20. 2021级新生程序设计班级天梯赛:1-6 《从你的全世界路过》

热门文章

  1. C语言试题二十九之编写函数int function(int lim,int aa[max])求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。
  2. WireShark抓DNS请求和回复数据报的分析
  3. java之通过FileChannel实现文件复制
  4. LeetCode之Add Digits
  5. 字符串之将整数字符串转成整数值
  6. Android之面试题精选,自己收藏下
  7. python typeerror* wants int_python-TypeError:’int’对象是不可迭代的?
  8. 几何学中关于相交圆的这个定理,你还记得吗?
  9. 最全高考分数线出炉!!查了分后,这届学生为了过线真是太拼了.......
  10. 我的狗丢了,所以我能加你微信吗? | 今日最佳