栈队列练习——堆盘子SetOfStacks

import java.util.ArrayList;

public class SetOfStacksApp {

public static void main(String[] args) {
    int capacity_per_substack = 5;  
    SetOfStacks set = new SetOfStacks(capacity_per_substack);  
    for (int i = 0; i < 34; i++) {  
        set.Push(i);  
    }  
    for (int i = 0; i < 34; i++) {  
        System.out.println("Popped " + set.Pop());  
    }   
}

}

class Link {
public int data;
public Link next;

public Link(int data) {
    this.data = data;
}

}

class LinkList {
private Link first;

public LinkList() {
    first = null;
}

public void ins(int id) {
    Link a = new Link(id);
    a.next = first;
    first = a; 
}

public int delFisrt() {
    Link temp = first;
    first = first.next;
    return temp.data;
}

public boolean isEmpty() {
    return (first == null);
}

}

class LinkStack {

public int size;
private int capacity;
private LinkList newList;

public LinkStack(int capacity) {
    newList = new LinkList();
    this.capacity = capacity;
    size = 0;
}

public void push(int a) {
    newList.ins(a);
    size++;
}

public int pop() {
    size--;
    return newList.delFisrt();
}

public boolean isEmpty() {
    return newList.isEmpty();
}

public boolean isFull() {
    return (size == capacity); 
}

}

class SetOfStacks {
ArrayList stacks = new ArrayList ();
private int capacity;

public SetOfStacks(int capacity) {
    this.capacity = capacity;
}

private LinkStack getLastStack() {
    if (stacks.size() == 0) {
        return null;    
    }
    return stacks.get(stacks.size()-1);
}

public void Push(int val) {
    LinkStack last = getLastStack();
    if (last != null && !last.isFull()) {
        last.push(val);
    } else {
        LinkStack stack = new LinkStack(capacity);
        stack.push(val);
        stacks.add(stack);
    }
}

public int Pop() {
    LinkStack last = getLastStack();
    int val = last.pop();
    if (last.size == 0) {
        stacks.remove(stacks.size() - 1);
    }
    return val;
}

}

HTML5/CSS 餐厅选择器 第一关 plate plate元素 第二关 bento bento元素 第三关 #fancy id为fancy的元素 第四关 plate apple plate祖先元素下的apple后代元素 第五关 #fancy pickle id为#fancy的祖先元素下的pickle后代元素 第六关 .small 组为small的元素 第七关 orange.small 组为small的orange元素 第八关 bento>orange.small bento父元素下的组为small的orange子元素 第九关 plate,bento,div plate,bento兄弟元素在div元素中 第十关 * *代表所有元素 第十一关 plate>* plate父元素的所有子元素 第十二关 plate + apple 兄弟元素选择器,plate元素的后一个元素 第十三关 bento~pickle 兄弟元素选择器,bento元素后的多个pickle元素 第十四关 plate>apple plate父元素下的apple子元素 第十五关 plate orange:first-child 子元素选择器,plate元素下的第一个orange元素 第十六关 plate :only-child 所有plate元素下的元素 第十七关 #fancy :last-child,pickle:last-child id为fancy的元素的最后一个和pickle元素的最后一个 第十八关 div plate:nth-child(3) div元素中的第三个plate元素 第十九关 div bento :nth-last-child(4) div元素中倒数第四个bento元素 第二十关 apple:first-of-type 第一个apple元素 第二十一关 plate:nth-of-type(even) 所有偶数个的plate元素 第二十二关 plate:only-of-type(6n+3),plate:only-of-type(6n+5) plate元素下的第3个和第5个元素 第二十三关 plate apple.small:only-of-type plate元素下满足apple.small元素的唯一一个元素 第二十四关 orange.small:last-of-type,apple.small:last-of-type 是orange.samll和apple.small元素的最后一个元素 第二十五关 bento:empty bento元素里没有包括额外元素 第二十六关 apple:not(.small) apple里没有组是.small的元素
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值