冲天香阵透长安,满城尽带黄金甲。这篇文章主要讲述#yyds干货盘点# 单链表实现栈相关的知识,希望能为你提供帮助。
栈是一种“后进先出”的数据结构,对栈的插入和删除操作都是在栈头位置进行的,这与在单链表的表头插入和删除元素的原理类似,因此可以用单向链表实现栈。
单链表实现栈的java代码:
package parking;
import java.util.Stack;
class Node
Object data;
Node next;
public Node(Object data)
this.data = https://www.songbingjia.com/android/data;
class LinkNode
private Node head;
private int size;
public LinkNode()
this.head = null;
this.size = 0;
// 判断是否为空
public boolean isEmpty()
return size == 0 ? true : false;
// 头插入法
public void addHNode(Node node)
if (head == null)
head = node;
else
node.next = head;
head = node;
size++;
// 输出头结点,不删除
public Object sysHNode()
if (head == null)
return null;
Object obj = head.data;
return obj;
// 输出头结点,并删除
public Object sysHnode()
if (head == null)
return null;
Object obj = head.data;
if (head.next == null)
head = null;
else
head = head.next;
size--;
return obj;
public int getSize()
// TODO Auto-generated method stub
return size;
public class LinkStack
private LinkNode link;
LinkStack()
link = new LinkNode();
// 判断是否为空
public boolean isEmpty()
return link.isEmpty();
// 入栈
private void push(Object obj)
Node node = new Node(obj);
link.addHNode(node);
// 出栈
private Object pop()
return link.sysHnode();
// 出栈,但不删除头结点
private Object peek()
return link.sysHNode();
// 获取栈大小
private int size()
return link.getSize();
public static void main(String[] args)
LinkStack stack = new LinkStack();
int i;
for (i = 0; i < 5; i++)
stack.push(i);
System.out.println("栈的大小:" + stack.size());
System.out.println("栈顶元素:" + stack.peek());
while (!stack.isEmpty())
System.out.print(stack.pop() + "--> ");
【#yyds干货盘点# 单链表实现栈】
推荐阅读
- #yyds干货盘点# 盘点两种使用Python读取.nc文件的方法
- SpringBoot的文件上传功能与下载方式
- Windows 下搭建ActiveMQ环境#yyds干货盘点#
- #yyds干货盘点# 彻底理解对象内存分配及Minor GC和Full GC全过程
- SpringBoot 获取上下文,获取bean的几种中方式
- #yyds干货盘点# springcloud整合Sentinel使用Nacos存储规则
- #yyds干货盘点#Spring Data JPA入门使用
- WordPress滑块在Safari中加载错误
- WordPress显示PHP代码而不是菜单内容