`
chenpingtai2008
  • 浏览: 57347 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

栈的顺序实现

J# 
阅读更多
栈是具有后进先出的特点,以下是栈的顺序实现,通过数组完成的。
public class ArrayStack<E> {
private E[] data = (E[]) new Object[10];
private int top = -1; //用来指示存到数组的哪个位置了
    //判断栈是否为空
public boolean isEmpty() {
return top < 0;
}
   //出栈操作,返回栈顶元素并删除
public E pop() {
if (isEmpty()) {
return null;
} else {
E temp = data[top];
top--;
return temp;
}
}
   //返回栈顶元素但并不删除
public E peek() {
if (isEmpty()) {
return null;
} else {
return data[top];
}
}
    //入栈操作
public void push(E target) {
//如果数组达到极限,建立新数组并拷贝原来的到新数组中,并使用新数组
if(top==data.length-1){
    E[] tempdata=(E[])new Object[data.length+5];
    int j=0;
    for(int i=0;i<data.length;i++){
    tempdata[j++]=data[i];
    }
    data=tempdata;
    }
top = top + 1;
data[top] = target;
}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics