//用链表实现堆栈

/**

* 节点类

*/

class LinkS {

private long data;

public LinkS next;

public LinkS(long d) {

this.data = d;

}

public String toString() {

return String.valueOf(data);

}

}

/**

* 链表类

*/

class LinkSList {

private LinkS first;

public LinkSList() {

first = null;

}

public void insertFirst(LinkS node) {

node.next = first;

first = node;

}

public LinkS deleteFirst() {

LinkS temp = first;

first = first.next;

return temp;

}

public boolean isEmpty() {

return first == null;

}

public String toString() {

if (isEmpty())

return "[]";

StringBuilder sb = new StringBuilder();

sb.append("[");

LinkS curr = first;

while (curr != null) {

sb.append(curr.toString()).append(",");

curr = curr.next;

}

sb.deleteCharAt(sb.length() - 1);

sb.append("]");

return sb.toString();

}

}

/**

* 栈

*/

class LinkStack {

private LinkSList linkList;

public LinkStack() {

this.linkList = new LinkSList();

}

public void push(LinkS l) {

this.linkList.insertFirst(l);

}

public LinkS pop() {

return this.linkList.deleteFirst();

}

public boolean isEmpty() {

return this.linkList.isEmpty();

}

public String toString() {

return this.linkList.toString();

}

public void display() {

System.out.println(toString());

}

}

public class LinkStackDemo {

public static void main(String[] args) {

LinkStack stack = new LinkStack();

for (int i = 0; i < 5; i++) {

LinkS l = new LinkS(i);

stack.push(l);

stack.display();

}

while (!stack.isEmpty()) {

System.out.print("pop出" + stack.pop());

System.out.print("现在栈为:");

stack.display();

}

}

}

java 链表实现堆栈_《Java数据结构与算法》笔记-CH5-链表-4用链表实现堆栈相关推荐

  1. 数据结构与算法之打印两个有序链表公共部分和判断一个链表是否具有回文结构

    数据结构与算法之打印两个有序链表公共部分和判断一个链表是否具有回文结构 目录 打印两个有序链表公共部分 判断一个链表是否具有回文结构 1. 打印两个有序链表公共部分 1.问题描述 思路:Node1和N ...

  2. Python数据结构与算法(2.6)——块状链表

    Python数据结构与算法(2.6)--块状链表 0. 学习目标 1. 块状链表简介 1.1 块状链表介绍 1.2 块状链表中结点类 1.3 块状链表中块类 2. 块状链表的实现 2.1 块状链表的初 ...

  3. 数据结构与算法笔记(王卓网课+教材+大话数据结构)

    数据结构与算法笔记(王卓网课+教材+大话数据结构) ##最新整理!!! 顺序存储结构的线性表P10-P21 顺序线性表的代码实现 链式线性表笔记 串笔记 绪论.算法(P1-P9)1.4数据起源结构 数 ...

  4. 数据结构与算法笔记(十五)—— 散列(哈希表)

    一.前沿 1.1.直接寻址表 当关键字的全域U比较小时,直接寻址是一种简单而有效的技术.假设某应用要用到一个动态集合,其中每个元素都有一个取自全域U={0,1,-,m-1)的关键字,此处m是一个不很大 ...

  5. 数据结构与算法笔记(青岛大学王卓老师视频)

    写在前面的话: 因为在学习数据结构之前,学习过一年的算法,所以有一些基础,一些我觉得 没必要的代码或知识就没写上,记得多是一些知识点,写的可能对于别人来说 很难接受,望谅解.我学习算法是在Acwing ...

  6. JS数据结构与算法 笔记

    JS数据结构与算法笔记 前言:不定时更新说明 1. 栈(Stack) 1.1 基于数组实现栈 1.2 基于对象实现栈 1.3 基于链表实现栈 1.4 栈的简单应用 1.4.1 字符串中的括号匹配问题 ...

  7. 数据结构与算法笔记 - 绪论

    数据结构与算法笔记 - 绪论 1. 什么是计算 2. 评判DSA优劣的参照(直尺) 3. 度量DSA性能的尺度(刻度) 4. DSA的性能度量的方法 5. DSA性能的设计及其优化 x1. 理论模型与 ...

  8. 数据结构与算法笔记(十六)—— 二叉搜索树

    一.二叉搜索树定义 二叉搜索树(Binary Search Tree),又名二叉排序树(Binary Sort Tree). 二叉搜索树是具有有以下性质的二叉树: 若左子树不为空,则左子树上所有节点的 ...

  9. java递归单链表查找中间元素_《数据结构与算法——C语言描述》答案 3.11 查找单链表中的特定元素(递归)...

    转载请注明出处:http://blog.csdn.net/xdz78 #include #include //查找单链表中的特定元素,<数据结构与算法--c语言描述> 3.11 答案 in ...

  10. java treeset 红黑树_【数据结构】红黑树与跳表-(SortSet)-(TreeMap)-(TreeSet)

    SortSet 有序的Set,其实在Java中TreeSet是SortSet的唯一实现类,内部通过TreeMap实现的:而TreeMap是通过红黑树实现的:而在Redis中是通过跳表实现的: Skip ...

最新文章

  1. 机器学习中的优化算法!
  2. 父亲节感恩回馈PSD海报
  3. 用variance和bias解释其overfitting
  4. 下一个十年需要的五大IT技能
  5. php负责传递数据,php传递数据的方法有哪些
  6. 从未在一起更让人遗憾_二十不惑强行悲伤结尾,我们本可以在一起,才最让人遗憾...
  7. 数据安全管理:RSA加密算法,签名验签流程详解
  8. php5.5 getter setter,实现了一个PHP5的getter/setter基类的代码
  9. 四、mysql数据常用命令
  10. 采用jqueryUI创建日期选择器
  11. PHP程序员进阶学习书籍参考指南
  12. python不定积分教学_python使用sympy不定积分入门及求解
  13. 通过Bottledwater同步PostgreSQL中的数据变化到Kafka消息队列
  14. Nginx反向代理(解决纯前端项目部署到服务器上无法访问接口数据)
  15. Mac Office启动报错:隐藏模块中出现编译错误:link
  16. 直流无刷电机(BLDC)与永磁同步电机(PMSM)的区别
  17. 武汉财政容灾系统应用案例
  18. 浅析肖特基二极管与开关二极管的不同之处
  19. 一文读懂数字孪生的应用及意义
  20. 1255计算机网络 本,国家开放大学电大本科《计算机网络》2025期末试题及答案(试卷号:1255)...

热门文章

  1. 2019蓝桥杯国赛B组第九题
  2. Linux sse 地址对齐指令,SSE指令:哪些CPU可以执行原子16B内存操作?
  3. swift 过滤字符串_使用Swift提取字符串中的最后一个单词
  4. jpa 自定义sql if_常用SQL语句大全总结
  5. 计算机组成加减交替法被除数,计算机组成原第2章答案.doc
  6. Java学习笔记_继承
  7. 图论--SCC强连通缩点--Tarjan
  8. [机器学习] --- 参数优化与模型选择
  9. Ubuntu 10.04 的源服务器和PXE安装环境搭建。
  10. 在.Net framework中动态加载Assembly的loadFromRemoteSources配置