在Java中堆叠实现
时间:2020-02-23 14:34:25 来源:igfitidea点击:
在本教程中,我们将看到如何在Java中使用数组实现堆栈。
介绍
堆栈
是演示的抽象数据类型 Last in first out (LIFO) behavior
。
我们将使用数组实施相同的行为。
虽然Java提供了所有抽象数据类型的实现,但是 Stack
那 Queue
和 LinkedList
但了解基本数据结构并自己实现它们是一个好主意。
请注意,阵列的堆栈实施本质上不是动态的。
我们可以通过链接列表实现堆栈以进行动态行为。
堆栈基本操作
堆栈支持以下基本操作。
push
:将元素推到堆叠的顶部。
此操作将增加堆栈的大小1.pop
:从堆栈的顶部删除元素并返回已删除对象。
此操作将减少堆栈的大小1.
isEmpty
:检查堆栈是否为空。isFull
:检查堆栈是否已满。peek
:从堆栈中返回顶部元素而不删除它。
使用数组堆叠实现
package org.igi.theitroad; /** * @author igi Mandliya */ public class StackCustom { int size; int arr[]; int top; StackCustom(int size) { this.size = size; this.arr = new int[size]; this.top = -1; } public void push(int pushedElement) { if (!isFull()) { top++; arr[top] = pushedElement; System.out.println("Pushed element:" + pushedElement); } else { System.out.println("Stack is full !"); } } public int pop() { if (!isEmpty()) { int returnedTop = top; top--; System.out.println("Popped element :" + arr[returnedTop]); return arr[returnedTop]; } else { System.out.println("Stack is empty !"); return -1; } } public int peek() { if(!this.isEmpty()) return arr[top]; else { System.out.println("Stack is Empty"); return -1; } } public boolean isEmpty() { return (top == -1); } public boolean isFull() { return (size - 1 == top); } public static void main(String[] args) { StackCustom StackCustom = new StackCustom(10); StackCustom.pop(); System.out.println("================="); StackCustom.push(10); StackCustom.push(30); StackCustom.push(50); StackCustom.push(40); System.out.println("================="); StackCustom.pop(); StackCustom.pop(); StackCustom.pop(); System.out.println("================="); } }