常见的数据集合——栈

本文介绍了栈这一数据集合的基本概念,包括顺序栈和链表栈的区别,以及栈的常见方法如入栈和出栈。栈的应用场景包括浏览器的回退前进功能和虚拟机栈在JVM中的作用。此外,讨论了栈的出栈顺序和如何手撕代码解决括号匹配和字符串反转问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介 

栈(Stack)是一种特殊的线性数据集合,按照后进先出的规则进行操作,当我们在对栈进行入栈(push())或出栈(pop())操作时,只可以在栈顶进行操作。栈的实现结构可以是一维数组或链表来实现,用数组实现的栈叫作顺序栈,用链表实现的栈叫作链表栈。在Java中,顺序栈使用java.util.Stack类实现,链式栈使用java.util.LinkedList类实现。

顺序栈与链式栈的区别:

对于顺序栈Stack来说,它是Vector的子类,底层是通过一个数组来储存数据的,是线程安全的;

链表栈LinkedList的底层是通过一条链表来存储数据的,是线程不安全的。

二、栈中的常见方法

1、入栈

入栈操作(push)就是把新元素从栈顶放入栈中,新元素将会成为新的栈顶。

 

2、出栈 

出栈操作(pop)就是把元素从栈顶弹出,出栈元素的前一个元素将会成为新的栈顶。

三、栈的常见应用场景

1、浏览器的回退和前进

我们只需要用两个栈(Sta

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值