接口定义如下:
public interface IntStack {
void push(int item);
int pop();
}
实现接口的DynStack如下:
public class DynStack implements IntStack{
private int stck[];
private int tos;
public DynStack(int size)
{
stck=new int[size];
tos=-1;
}
public void push (int item)
{
if (tos==stck.length-1)
{
int temp[]=new int[stck.length*2];
for (int i=0;i<stck.length;i++)
{
temp[i]=stck[i];
}
stck=temp;
stck[++tos]=item;
}
else
{
stck[++tos]=item;
}
}
public int pop()
{
if (tos<0)
{
System.out.println("Stack underflow");
return 0;
}
else
{
return stck[tos--];
}
}
}
实现接口的FixedStack类定义如下:
public class FixedStack implements IntStack {
private int stck[];
private int tos;
FixedStack (int size)
{
stck=new int[size];
tos=-1;
}
public void push(int item)
{
if (tos==stck.length-1)
{
System.out.println("Stack is null");
}
else
{
stck[++tos]=item;
}
}
public int pop()
{
if (tos<0)
{
System.out.println("Stack underflow");
return 0;
}
else
{
return stck[tos--];
}
}
}
主程序调用如下:
IntStack mystack;
DynStack ds=new DynStack(5);
FixedStack fs=new FixedStack(8);
mystack=ds;
for (int i=0;i<12;i++)
{
mystack.push(i);
}
mystack=fs;
for (int i=0;i<8;i++)
{
mystack.push(i);
}
mystack=ds;
System.out.println("value in dynamic stack:");
for (int i=0;i<12;i++)
{
System.out.println(mystack.pop());
}
mystack=fs;
System.out.println("value in fixed stack:");
for (int i=0;i<8;i++)
{
System.out.println(mystack.pop());
}
posted on 2012-07-03 12:13
jhtchina 阅读(756)
评论(0) 编辑 收藏 所属分类:
jsp初学