栈和队列的非顺序存储及其实现

本文探讨了栈和队列这两种数据结构,重点介绍了非顺序存储的实现方式。栈的非顺序存储时间复杂度为O(1),通过引入Node和SLNode类来实现。队列同样有顺序和非顺序存储,非顺序存储的队列操作时间复杂度为O(1),优于顺序存储的O(n)。文中提供了相关异常类和实现类的代码示例。
摘要由CSDN通过智能技术生成

栈的性质是先进后出(FILO first in last out),栈是我们计算机底层重要的数据接口,很多地方都实现了栈的接口,比如我们在学习汇编语言的时候8086CPU就有一个段寄存器ss(存放栈顶的段地址)和寄存器sp(存放栈顶的偏移地址),通过这两个寄存器来实现栈的指向。
栈的存储有顺序存储和非顺序存储,顺序存储如使用数组存储,在前面的博客中已经实现了(栈的顺序存储实现)。顺序存储中的时间复杂度为O(1),而在非顺序存储中的时间复杂度也是O(1)。在给出非顺序存储的实现前,我们先引入下面的结点和其实现类。
Node.java

public interface Node {
	
	public Object getData(); // 获取数据
	public void setData(Object element); // 设置数据
}

SLNode.java

public class SLNode implements Node {
	
	private Object element;
	private SLNode next;
	
	public SLNode() {
		this(null,null);
	}
	
	public SLNode(Object element, SLNode next) {
		this.element = element;
		this.next = next;
	}
	
	public SLNode getNext() {
		return next;
	}

	public void setNext(SLNode next) {
		this.next = next;
	}

	&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值