发布网友 发布时间:2022-04-23 18:32
共3个回答
热心网友 时间:2023-10-13 02:03
import java.util.*;
interface Stack{
void push(int val);
Object pop();
int size();
int maxSize();
}
public class TestStack implements Stack {
int size;
int maxSize;
Object list[];
public TestStack()
{
size=0;
maxSize=10;
list=new Object[maxSize];
}
public void push(int obj)
{
if(size == maxSize)
{
maxSize=maxSize*2;
Object newObj[]=new Object[maxSize];
System.arraycopy(list, 0, newObj, 0, list.length);
list=newObj;
}
list[size]=obj;
size++;
}
public Object pop()
{
if(size!=0)
{
size--;
return list[size];
}
else throw new ArrayIndexOutOfBoundsException(size);
}
public int size()
{
return size;
}
public int maxSize()
{
return maxSize;
}
public static void main(String []args)
{
TestStack test=new TestStack();
//test.pop();此时出栈操作会报错 在此方法中抛出了 //ArrayIndexOutOfBoundsException
for(int i=0; i<12; i++)
test.push(i);
System.out.println(test.size());
System.out.println(test.maxSize());
for(int i=0; i<12; i++)
System.out.print(test.pop()+" ");
}
}
热心网友 时间:2023-10-13 02:03
Java中有实现了栈的类,比如LinkedList,你可以使用LinkedList来实现这个Stack 很简单。或者你可以自己使用数据结构来实现这个类,这个稍稍麻烦点。
热心网友 时间:2023-10-13 02:04
直接查看库函数源代码,参考着写就行了撒,