码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-02-13 14:42:00      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:element   empty   结构   存储   替换   mys   实现   package   没有   

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数据结构-栈的底层实现:数组实现压入,弹出,判断空栈

标签:element   empty   结构   存储   替换   mys   实现   package   没有   

原文地址:https://www.cnblogs.com/fuqiang-java/p/12303305.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!