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; }}
相关推荐
LauraRan 2020-09-28
范范 2020-07-30
mingyunxiaohai 2020-07-28
mingyunxiaohai 2020-07-19
koushr 2020-11-12
zhangxiafll 2020-11-13
kikaylee 2020-10-31
范范 2020-10-28
MILemon 2020-10-22
hugebawu 2020-10-12
shenwenjie 2020-09-24
omyrobin 2020-09-23
guangcheng 2020-09-22
qiangde 2020-09-13
hanyujianke 2020-08-18
晨曦之星 2020-08-14
xiesheng 2020-08-06
KAIrving 2020-08-02