栈也是编程语言最基本的数据结构。
本文给出了实现一个简单栈的java工具类,包含栈的初始化,和一些基本操作: push压栈、pop弹栈、peek查看栈顶元素、判断栈是否为空、判断栈是否满。
下给出相应的数组封装类代码:
package com.zh.Stack;
public class MyStack {
//栈的底层发数据结构也是数组. 主要方法有 push pop peek 判断stack为空 判断栈满
private long[] arr;
private int top;
/**
* 默认构造方法
*/
public MyStack(){
arr = new long[10];
top = -1;
}
/**
*
* 带参数的初始化构造函数
*
*/
public MyStack(int maxsize){
arr= new long[maxsize];
top = -1;
}
/**
* 加入数据 入栈
*
* @param value
*/
public void push(long value){
arr[++top] = value;
}
/**
* 移除数据 出栈
*
* @param value
* @return
*/
public long pop(){
return arr[top--];
}
/**
* 查看 栈顶 元素
*
* @return
*/
public long peek(){
return arr[top];
}
/**
* 判断 栈 是否为空
*
* @return
*/
public boolean isEmpty(){
return top == -1;
}
/**
* 判断 栈 是否已满
*
* @return
*/
public boolean isFull(){
return top == arr.length - 1;
}
}
上面给出的代码是一个简单的实现,写这一系列的文章目的有两个:
1.根据面向对象的思想来实现栈,深入理解面向对象,同时复习栈的实现
2.应付一些简单的面试,有时候面试者会让你用数组来实现栈结构。
笔者才疏学浅,不足和错误之处请大家指正,一起学习,共同进步!
本文介绍了如何使用Java编程实现一个基于数组的栈工具类,包括初始化栈、压栈、弹栈、查看栈顶元素、判断栈空和栈满的基本操作。这个工具类有助于深化面向对象理解,并可用于应对简单的面试问题。
1795

被折叠的 条评论
为什么被折叠?



