目录
一、理解
1.栈和队列其实是操作受限的线性表
2.之前的数组也罢,链表也罢,既可以在头部插入和删除,也能在尾部插入和删除,甚至在任意位置都可以插入和删除。
3."栈和队列"只能在一端插入元素和删除元素
二、栈
栈的特点:
先进后出,后进先出的线性表
例子:将元素12345依次添加到栈中
取出元素顺序 5 4 3 2 1
规则
1.最先添加的元素就在当前栈的最底端,最后添加的元素就在栈的最顶喘。
2.从栈中取出元素的顺序和从栈中添加的元素的顺序恰好相反
栈在现实生活中的应用(无处不在的栈的应用)
1.在任何一个编辑器中输错了一个内容使用ctrl +z就返回到了上一次输入的内容,在任何一个浏览器点击〈- 就能返回上一次浏览的网页。
⒉.操作系统栈: 程序在执行过程中,从A函数调用B函数,从B函数调用C函数,返回执行时得知从哪开始继续执行的原因,其实背后就是栈这个结构
三、栈的实现
基于数组实现的栈–顺序栈
栈只能在栈顶插入元素,在栈顶删除元素的结构
链式栈栈的三个核心操作
push(E e):向栈中添加元素->入栈,压栈
E pop()︰出栈操作,弹出栈顶元素
Epeek():查看栈顶元素,但不出栈
例子
public class MyStack<E> {