Java 数据结构与算法系列精讲之栈

网友投稿 276 2022-08-27


Java 数据结构与算法系列精讲之栈

目录概述栈栈实现push方法pop方法main完整代码

概述

从今天开始, 小白我将带大家开启 Jave 数据结构 & 算法的新http://篇章.

栈 (Stack) 是一种运算受限的线性表, 遵循先进后出的原则 (Last-In-First-Out). 举个例子, 当我们灌调料的时候, 后灌进去的调料会先被使用.

栈只能在表尾部进行插入和删除的操作. 开口的一端被称为栈顶, 另一端则被称为栈底. 如图:

栈实现

push 方法

栈 (Stack) 的 push 方法, 把项压入栈顶部.

代码:

// push方法

public void push(E element){

array.add(array.size(), element);

}

pop 方法

栈 (Stack) 的 pop 方法, 移除栈顶对象并返回.

代码:

// pop方法

public E pop(){

E element = array.get(array.size() - 1);

array.remove(array.size() - 1);

return element;

}

main

public static void main(String[] args) {

// 创建栈

Stack stack = new Stack<>();

// push5个元素

for (int i = 0; i < 5; ihocEeDA++) {

stack.push(i);

System.out.println(stack);

}

// pop 5个元素

for (int i = 0; i < 5; i++) {

stack.pop();

System.out.println(stack);

}

}

输出结果:

stack{array=[0]}stack{array=[0, 1]}stack{array=[0, 1, 2]}stack{array=[0, 1, 2, 3]}stack{array=[0, 1, 2, 3, 4]}stack{array=[0, 1, 2, 3]}stack{array=[0, 1, 2]}stack{array=[0, 1]}stack{array=[0]}stack{array=[]}

完整代码

import java.util.ArrayList;

public class Stack {

private ArrayList array;

// 无参构造

public Stack() {

array = new ArrayList();

}

// 有参构造

public Stack(int capacity){

array = new ArrayList(capacity);

}

// push方法

public void push(E element){

array.add(array.size(), element);

}

// pop方法

public E pop(){

E element = array.get(array.size() - 1);

array.remove(array.size() - 1);

return element;

}

@Override

public String toString() {

return "stack{" +

"array=" + array +

'}';

}

public static void main(String[] args) {

// 创建栈

Stack stack = new Stack<>();

// push5个元素

for (int i = 0; i < 5; i++) {

stack.push(i);

System.out.println(stack);

}

// pop5个元素

for (int i = 0; i < 5; i++) {

stack.pop();

System.out.println(stack);

}

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:django admin 使用(django vue)
下一篇:python opencv 图像处理(八)(python培训)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~