java 通过链表实现栈
来源:互联网 发布:亿世界系统源码php 编辑:程序博客网 时间:2024/06/03 15:29
节点类
package stack.demo;public class Node { private Object data; private Node nextNode; private Node prevNode; public Node(Object data) { super(); this.data = data; } public Node getNextNode() { return nextNode; } public void setNextNode(Node nextNode) { this.nextNode = nextNode; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } public Node getPrevNode() { return prevNode; } public void setPrevNode(Node prevNode) { this.prevNode = prevNode; }}
栈类
package stack.demo;public class LinkedStack { Node first; Node last; int maxLength = 5; int size = 0; public void add(String value) { if (size == maxLength) { System.out.println("已经是满栈了"); return; } Node newNode = new Node(value); Node temp = last; newNode.setPrevNode(temp); last = newNode; if (temp == null) { first = newNode; } else { temp.setNextNode(newNode); } size++; } // 栈是先进后出,必须要栈低以上的先出完,才能拿到栈的底的数据 public String removeLast() { if (size == 0) { System.out.println("已经是空栈了"); return null; } Node temp = last; last = last.getPrevNode(); size--; return (String) temp.getData(); }}
执行类
package stack.demo;public class Main { public static void main(String[] args) { LinkedStack ls = new LinkedStack(); ls.add("a"); System.out.println("进a"); ls.add("b"); System.out.println("进b"); ls.add("c"); System.out.println("进c"); ls.add("d"); System.out.println("进d"); ls.add("e"); System.out.println("进e"); ls.add("f"); System.out.println("进f"); System.out.println("出栈: " + ls.removeLast()); System.out.println("出栈: " + ls.removeLast()); System.out.println("出栈: " + ls.removeLast()); System.out.println("出栈: " + ls.removeLast()); System.out.println("出栈: " + ls.removeLast()); System.out.println("出栈: " + ls.removeLast()); }}
执行结果
进a
进b
进c
进d
进e
已经是满栈了
进f
出栈: e
出栈: d
出栈: c
出栈: b
出栈: a
已经是空栈了
出栈: null
阅读全文
0 0
- java 通过链表实现栈
- Java实现栈一:通过LinkedList实现
- java通过链表实现队列,先进先出
- java通过栈实现树的遍历
- Java通过两个栈实现队列
- Java实现栈二:通过数组方式实现
- 通过Socket实现文件传输(Java)
- java 通过Thread实现多线程
- java通过http实现断点续传
- java 通过zxing实现二维码
- java通过反射实现HttpServlet
- Java通过HttpProxy实现穿越
- Java通过实现Runable来实现多线程
- java 通过实现Runnable接口实现多线程
- 通过向量实现栈
- 单向链表实现以及通过栈来实现数据的打印
- 通过WebService实现Java与.Net互联
- 通过线程门实现Java并发编程
- 新零售如何发力?还得靠零售BI来驱动
- bzoj刷题
- FCC-----------Mutations
- iOS GCD中级篇
- 2. Add Two Numbers
- java 通过链表实现栈
- 初次使用easyui。。。
- Jlink使用故障记录
- Linux连接Mac
- 【2014年第五届蓝桥杯C/C++程序设计本科B组决赛试题】
- Java-后台跳转界面,传值的几种方法
- Android应用开发-网络编程
- Tomcat工作原理
- 1003. 我要通过!(20)