java 栈实现(push,pop,peak)
2013-09-27 15:42
288 查看
public class StackX {
private int MAX_LENGTH = 10;
private Object[] array;
private int top;//栈顶
public StackX(){
array = new Object[MAX_LENGTH];
top = -1;
}
public StackX(int size){
MAX_LENGTH = size;
array = new Object[MAX_LENGTH];
top = -1;
}
public synchronized Object pop(){
if (top < 0)
return null;
return array[top--];
}
public synchronized void push(Object temp){
if(isFull())
expandSpace();
array[++top] = temp;
}
private void expandSpace(){
Object[] arrayLen = new Object[array.length*2];
for(int i = 0,len = array.length;i<len;i++)
arrayLen[i] = array[i];
array = arrayLen;
}
public Object peek(){
return array[top];
}
public boolean isNull(){
return top == -1;
}
public boolean isFull(){
return top == array.length-1;
}
public void clear(){
top = -1;
}
public int size() {
return top + 1;
}
}
private int MAX_LENGTH = 10;
private Object[] array;
private int top;//栈顶
public StackX(){
array = new Object[MAX_LENGTH];
top = -1;
}
public StackX(int size){
MAX_LENGTH = size;
array = new Object[MAX_LENGTH];
top = -1;
}
public synchronized Object pop(){
if (top < 0)
return null;
return array[top--];
}
public synchronized void push(Object temp){
if(isFull())
expandSpace();
array[++top] = temp;
}
private void expandSpace(){
Object[] arrayLen = new Object[array.length*2];
for(int i = 0,len = array.length;i<len;i++)
arrayLen[i] = array[i];
array = arrayLen;
}
public Object peek(){
return array[top];
}
public boolean isNull(){
return top == -1;
}
public boolean isFull(){
return top == array.length-1;
}
public void clear(){
top = -1;
}
public int size() {
return top + 1;
}
}
相关文章推荐
- 设计桟的 min、push以及pop的时间复杂度都是O(1) Java 实现
- JAVA实现用两个栈来实现一个队列,完成队列的Push和Pop操作(《剑指offer》)
- java 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
- 《剑指Offer》用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。java
- 自己用Java实现一个“栈”类,包括push和pop基本操作
- JAVA实现用两个栈来实现一个队列,完成队列的Push和Pop操作(《剑指offer》)
- JAVA实现用两个栈来实现一个队列,完成队列的Push和Pop操作(《剑指offer》)
- 实现时间复杂度为O(1)的Push,Pop,Min
- 数据结构之栈的push与pop操作(顺序存储结构的c实现)
- 两个栈实现队列的pop与push操作
- 【每日一题】实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- iOS实现先无动画pop再push,替换当前控制器
- 两个队列实现一个栈,要求实现Push以及Pop等方法
- 自定义 push 和 pop 实现有趣的相册翻开效果(上)
- 实现一个栈,要求实现Push(入栈)、Pop(出栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- [WPS笔试题]实现栈的push,pop,max且时间复杂度为O(1)
- 实现一个栈,要求实现一个push,pop,min(返回最小值)的时间复杂度为0(1)
- 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
- 4.用两个栈 c181 来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
- 实现一个栈Stack,Push、Pop、Min(返回最小值的操作)的时间复杂度为O(1)