fw12013年12月13日1:17:54 - multi-stack -java

本文介绍了一个使用Java实现的自定义栈管理类wtfStack,该类能够动态创建多个栈来存储元素,并提供了push和pop等操作。当栈满时会自动创建新的栈,实现了对多个栈的有效管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package test_kepler;
import java.util.ArrayList;
import java.util.Stack;
// the last stack is important  ; try to implement it via queue the first queue will be very important

public class wtfStack {
static int max_stack_size = 10;
ArrayList<Stack> stacks = new  ArrayList<Stack>();
public wtfStack()
{
Stack stack = new Stack();
stacks.add(stack);
}
public Stack getLast()
{
return (Stack)stacks.get(stacks.size()-1);
}
public void  push(int k)
{
if(getLast().size() == max_stack_size )
{
Stack newStack = new Stack();
stacks.add(newStack);
}
getLast().push(k);
}
 
public Object  pop()
{
if(stacks.size()!=0)
{
if(getLast().size() == 0)
{
stacks.remove(stacks.size()-1);
}
return getLast().pop();
}
else
{
return null;
}
 
}

//print all the element in the stacks;
void print()
{
for(int i = 0;i<stacks.size();++i)
{
Stack stack_temp = stacks.get(i);
for (Object x : stack_temp) 

             System.out.println(x); 
        } 
}
}

public static void main(String[] args) {
// TODO Auto-generated method stub
wtfStack ws = new wtfStack();
Stack test_stack = new Stack();
   for(int i = 0;i<20;++i)
   {
    ws.push(i);
    test_stack.push(i);
   }
   System.out.println("for the advanced");
   ws.print();
   System.out.println("for the naieve");
   for(Object x : test_stack)
   {
    System.out.println(x);
   }
   for(int j = 0;j<15;++j)
   {
    System.out.println("advan");
    System.out.println(ws.pop());
    System.out.println("normal");
    System.out.println(test_stack.pop());
   }
  // ws.print();
}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值