1.栈的介绍
1). 栈的英文为stack;
2). 栈是一个先进后出的有序列表;
3). 栈是限制线性表中元素的插入和删除只能在线性表的一端进行的一种特殊线性表.允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom);
2.栈的应用场景
1).子程序的调用:在跳往子程序前,会先将下个指令的地址存到堆栈中,直到子程序执行完后再将地址取出,以回到原来的程序中;
2).处理递归调用:和子程序的调用类似,只是除了存储下一个指令的地址外,也将参数、区域变量等数据存入堆栈中;
3).表达式的转换[中缀表达式转后缀表达式]与求值(实际解决);
4).二叉树的遍历;
5).图形的深度优先搜索法.
3.实例化
Stack stack = new Stack();
4.进栈
stack.push(Object);//返回的是入栈的内容
stack.add(Object);//返回的是true或false
5.出栈
stack.pop();//输出并删除栈顶元素
stack.peek();//输出不删除栈顶元素
6.判断是否为空
stack.isEmpty();
7.输出栈([ , , , …])
System.out.println(stack);
8.查看某元素在栈中的为重,计数从1开始
int index = stack.search(“a”);
代码演示
package com.itguigu.linkedlist;
import java.util.Stack;
/**
* 栈的基本使用
*/
public class TestStack {
public static void main(String[] args) {
Stack<String> stack = new Stack<>();
// 入栈
stack.add("one");
stack.add("two");
stack.add("three");
// 出栈
while (!stack.isEmpty()){
System.out.println(stack.pop());
}
}
}
输出结果:three
two
one