栈的Java实现--链栈

本文介绍了链栈的概念和在Java中的实现,包括链栈的基本结构、入栈和出栈操作的详细说明,并提供了具体的Java代码实现。此外,还讨论了JDK中基于数组的Stack和基于LinkedList的栈实现,分析了它们的特点和适用场景。文章最后提供了相关资源的链接。
摘要由CSDN通过智能技术生成

栈的Java实现--链栈

链栈,顾名思义,就是以链表的形式实现的栈的相关操作,其实是功能弱化了的链表,如果已经阅读过链表的实现代码,那么链栈的实现显得更为容易。

 

链栈的基本结构:


链栈的入栈操作:

  •  让top引用指向新的节点,新节点的next指向原来的top
  • 记录栈内元素个数的size+1


链栈的出栈操作:

  •  top引用指向原栈顶元素的下一个元素(top.next),并释放原栈顶元素的引用
  • 记录栈内元素个数的size-1

 链栈的Java实现代码:

 

package com.liuhao.DataStructures;

public class LinkStack<T> {

	private class Node {
		private T data;// 保存节点的数据元素
		private Node next;// 保存下一个节点的引用

		public Node() {
		}

		public Node(T data, Node next) {
			this.data = data;
			this.next = next;
		}
	}

	private Node top;// 存放栈顶节点
	private int size = 0;// 存放栈中已有的元素个数

	// 创建空链栈
	public LinkStack() {
		top = null;
	}

	// 已指定数据元素创建链栈,只有一个元素
	public L
  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值