基于链表的栈(Java)
2024-09-02 05:56:30
package com.rao.linkList; /**
* @author Srao
* @className LinkedStack
* @date 2019/12/3 13:59
* @package com.rao.linkList
* @Description 基于链表的栈
*/
public class LinkedStack { /**
* 定义节点
*/
static class Node{
private String data;
private Node next; public Node(String data) {
this.data = data;
this.next = null;
} public String getData() {
return data;
}
} //栈顶元素
private Node top; /**
* 入栈
* @param s
*/
public void push(String s){
Node node = new Node(s);
if (top == null){
top = node;
}else {
node.next = top;
top = node;
}
} /**
* 出栈
* @return
*/
public Node pop(){
Node node = null;
if (top.next != null){
node = top;
top = top.next;
}else {
node = top;
top = null;
}
return node;
} public static void main(String[] args) {
LinkedStack linkedStack = new LinkedStack();
linkedStack.push("aa");
linkedStack.push("11");
linkedStack.push("@@");
System.out.println(linkedStack.top.getData());
System.out.println(linkedStack.pop().getData());
System.out.println(linkedStack.pop().getData());
System.out.println(linkedStack.pop().getData());
}
}
基于链表的栈和基于数组的栈不同,基于链表的栈必须自己定义节点,而基于数组的栈由数组作为节点,对于节点的定义可以使用内部类来实现,每新建一个类的实例都是新建一个新的节点
最新文章
- T-SQL:毕业生出门需知系列(四)
- git学习4:分支管理
- CentOS-6.5安装配置Tomcat7
- MyEclipse8.5集成Tomcat7时的启动错误:Exception in thread “main” java.lang.NoClassDefFoundError org/apache/commons/logging/LogFactory
- bzoj2259
- hashtable 和dictionary
- &;quot;ScrollView can host only one direct child&;quot;问题解决了
- Python笔记2.1
- 学习Python不得不关注和学习的国外大神博客
- 基于FPGA的腐蚀膨胀算法实现
- [BZOJ1058][ZJOJ2007]报表统计
- IntelliJ IDEA安装scala插件并创建scala示例
- 安装pipenv
- Android中监控home键
- visual studio 和 sql server 的激活密钥序列号
- python 全栈开发,Day85(Git补充,随机生成图片验证码)
- 【大数据系列】hadoop集群设置官方文档翻译
- Haskell语言学习笔记(67)Gtk2Hs
- JavaScript 学习(一)
- [k8s]prometheus+grafana监控node和mysql(普罗/grafana均vm安装)