上篇文章,我们已经完成链表的收尾工作,从本篇文章开始,将进入栈和队列的学习,j觉得小编写的还可以的可以留个关注支持一下~话不多说,上正文~
1.栈
概念:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则
压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。
出栈:栈的删除操作叫做出栈。出数据在栈顶
我们还是借助图片来理解入栈和出栈
入栈
出栈
通过上面的图片,想必大家对栈已经有了一个基本的认识,接下来,我们要进行栈的创建和使用
2.栈的创建和使用
1.导入类: mport java.util.Stack;
2.创建对象,代码如下
public static void main(String[] args) {
Stack<Integer> stack =new Stack<>();
}
此时,我们栈就已成创建完毕了,接下来,我们将会介绍stack类中的一些方法,
由于这几个方法比较简简单,所以我们进行集中演示
public static void main(String[] args) {
Stack<Integer> stack = new Stack<>();
stack.push(12);
stack.push(23);
stack.push(34);
Integer x = stack.pop();
System.out.println(x);
System.out.println(stack.size()); // 获取栈中有效元素个数---> 2
boolean ret = stack.empty();
System.out.println(ret);
}
运行截图
3.模拟栈的实现
其实,栈的底层依旧是一个数组,如图
1.定义一个类Mystack
2.定义成员属性
3.设置默认长度
4.提供构造方法
代码如下
public class MyStack {
private int elem[];
private int usedSize;
private static final int DEFAULT_CAPACITY = 10;
public MyStack(){
this.elem = new int[DEFAULT_CAPACITY];
}
}
到此为止,我们的模拟栈的实现就已经完成了,下一篇文章将会对栈进行增删查改,敬请期待叭~
觉得小编写的还可以的可以留个关注支持一下~
谢谢观看~