大话数据结构六:特殊的线性表(栈)

本文介绍了栈这种特殊的线性表,它遵循后进先出(LIFO)原则。栈可以使用Java数组或链表来实现,数组实现性能更优,而链表实现则方便于动态扩展。JDK中提供了java.util.Stack(基于数组,线程安全)和java.util.LinkedList(双向链表,非线程安全,但在多线程环境下可转化为线程安全)作为栈的实现。
摘要由CSDN通过智能技术生成

1. 什么是栈?

栈(stack)是限定仅在表尾进行插入和删除操作的线性表。


2. 栈的特点:

1.) 栈又称为后进先出(Last In First out)的线性表,栈元素具有线性关系,即前驱后继关系。

2.) 栈的特殊之处在于:它的栈底是固定的,只允许在栈顶进行插入和删除操作。


3. 栈的顺序存储结构(Java数组实现):

// 栈的数组实现, 底层使用数组:
public class ArrayStack<T> {
	private Object[] arr; // 数组首元素作为栈底,因为它变化小
	private int length;
	
	// 数据初始化
	public ArrayStack(){
		arr = new Object[16];
		length = 0;
	}
	
	// 元素入栈
	public boolean push(T data) {
		if (length >
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值