[javaSE] 数据结构(栈)

时间:2024-01-06 17:44:20

栈(stack)是一种线性存储结构,有以下特点:

1.栈中数据是按照先进后出的方式进出栈的

2.向栈中添加删除元素时,只能从栈顶进行操作

使用数组实现栈

定义一个类ArrayStack

实现入栈方法push()

实现出栈方法pop()

实现返回栈顶元素方法peek()

public class ArrayStack {
private int[] mArray;
private int mCount;
public ArrayStack(int num) {
mArray=new int[num];
mCount=0;
}
/**
* 入栈
* @param item
*/
public void push(int item){
mArray[mCount]=item;
mCount++;
}
/**
* 出栈
* @return
*/
public int pop(){
int top=mArray[mCount-1];
mCount--;
return top;
}
/**
* 返回栈顶元素
* @return
*/
public int peek(){
return mArray[mCount-1];
}
/**
* 打印
*/
public void print(){
for(int i=0;i<=mCount-1;i++){
System.out.print(mArray[i]+",");
}
}
/**
* @param args
*/
public static void main(String[] args) {
ArrayStack stack=new ArrayStack(3);
stack.push(5);
stack.push(6);
stack.push(7);
//stack.print();//输出 5,6,7,
stack.pop();
//stack.print();//输出 5,6,
stack.push(8);
stack.print();//输出 5,6,8,
} }