标签:blog io ar java 数据 on 2014 log as
package Stack;
/**
* 栈的定义:限定只在表末尾进行增加和删除操作的线性表
* 栈的特点:先进后出FILO(First In Last Out)
* 通常我们把允许插入和删除的一段称为栈顶(top),另一端
* 称为栈底,不包含任何元素的栈称为空栈
* 栈的出栈操作我们一般称为进栈或者压栈或者入栈
* 栈的删除操作我们一般称为出栈或者弹栈
*
* 这里我们用数组来实现栈的顺序存储结构及各种操作
* @author wl
*
*/
public class MyStack {
private int[] array;//用来存放栈的元素
private int top;//栈顶指针
/**
* 默认构造函数,用于初始化栈,这里我们
* 将栈的大小默认初始化为10
*/
public MyStack(){
array=new int[10];
top=-1;
}
/**
* 自定义构造函数,可以用于指定栈的初始化
* 空间大小
*/
public MyStack(int capacity){
array=new int[capacity];
top=-1;
}
/*
* 压栈操作
*/
public void push(int value){
if(isFull()){//栈满
throw new RuntimeException("栈已满,元素'"+value+"'压栈不成功");
}
array[++top]=value;
}
public int peek(){
if(isEmpty()){//如果栈为空
throw new RuntimeException("栈中元素为空");
}
return array[top];
}
/**
* 出栈操作
* @return
*/
public int pop(){
if(isEmpty()){//如果栈为空
throw new RuntimeException("栈中元素为空");
}
return array[top--];
}
/**
* 判断栈是否为空
* @return
*/
public boolean isEmpty(){
return top==-1;
}
/**
* 判断栈是否满了
*/
public boolean isFull(){
return top==array.length-1;
}
}
标签:blog io ar java 数据 on 2014 log as
原文地址:http://blog.csdn.net/tmwl0728/article/details/41283283