在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("=================");
}
}

