java数据结构-栈的底层实现:数组实现压入,弹出,判断空栈

Posted 1350464730

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java数据结构-栈的底层实现:数组实现压入,弹出,判断空栈相关的知识,希望对你有一定的参考价值。

package com.stack;

/**
* @auther 付强
* @date 2020/2/13 - 12:45
*/
public class Mystack {
//栈的底层我们使用数组来存储数据
int[] elements;
public Mystack(){
elements=new int[0];
}
//压入元素
public void push(int element){
//创建一个新的数组
int[] newArr=new int[elements.length+1];
//把原数组中的元素复制到新的数组中
for (int i = 0; i < elements.length; i++) {
newArr[i]=elements[i];
}
//把添加的元素放入新数组中的
newArr[elements.length]=element;
//使用新数组替换就数组
elements=newArr;
}
//取出栈顶元素
public int pop(){
//栈中没有元素
if(elements.length==0){
throw new RuntimeException("stack is empty");
}
//取出数组的最后一个元素
int element = elements[elements.length - 1];
//创建一个新的数组
int[] newArr=new int[elements.length-1];
//把原数组中处理最后一个元素的其他元素都放入新数组中
for (int i = 0; i < elements.length - 1; i++) {
newArr[i]=elements[i];
}
//替换数组
elements=newArr;
//返回栈顶元素
return element;
}
//查看栈顶元素
public int pick(){
//栈中没有元素
if(elements.length==0){
throw new RuntimeException("stack is empty");
}
return elements[elements.length-1];
}
//判断栈是否为空
public boolean isEmpty(){
return elements.length==0;
}

}

以上是关于java数据结构-栈的底层实现:数组实现压入,弹出,判断空栈的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer面试题 31. 栈的压入弹出序列

Leetcode——栈的压入弹出序列

用两个栈实现队列Java实现[剑指offer]

栈的压入弹出序列

剑指offer:栈的压入弹出序列

21剑指offer--栈的压入弹出序列