数据结构-栈

一、基本概念

栈:先进后出(FILO)的数据结构。

Java中栈的实现类是Stack,间接实现了List接口。Stack的常用操作为:push(),pop(),peek(),empty()等。

二、常见算法题

2.1 无水平

1:设计一个有getMin功能的栈

使用两个Stack,一个用于存储数据,另一个用于存储当前栈中的最小值。

注意:入栈操作同时操作两个栈,出栈操作同时操作两个栈。

2:两个栈组成一个队列

使用两个Stack,StackIn用于数据入栈,StackOut用于数据出栈。

注意:

1:StackOut为空时将StackIn中的数据全部"倒入"StackOut中;

2:StackOut不为空时直接从StackOut中出栈;

3:用一个栈实现另一个栈的排序

两个栈互为辅助栈

2.2有水平

相关推荐
Victoria.a1 小时前
string类详解
数据结构·c++
XY_墨莲伊4 小时前
【算法设计与分析】实验5:贪心算法—装载及背包问题
c语言·数据结构·c++·算法·贪心算法·排序算法
Happy_Traveller5 小时前
三角形的最大周长(976)
数据结构·算法·leetcode
weixin_307779135 小时前
Python获取能唯一确定一棵给定的树的最少数量的拓扑序列
数据结构·python
砂糖はいかがですか。6 小时前
关于合并两个有序链表
数据结构·算法·链表
c-c-developer6 小时前
C++ Primer 自定义数据结构
数据结构·c++
程序趣谈7 小时前
算法随笔_36: 复写零
数据结构·python·算法
轩情吖7 小时前
二叉树-堆(补充)
c语言·数据结构·c++·后端·二叉树··排序
爱是小小的癌9 小时前
Java-数据结构-优先级队列(堆)
java·前端·数据结构
sjsjs119 小时前
【数据结构-字典树】力扣14. 最长公共前缀
数据结构·leetcode