2、算法-定容栈

代码

package base.第一章.背包_队列_和栈.数组实现定容栈.定容栈;

/**
 * Created by MK on 2018/7/23.
 * 定容栈: 只能处理String值,并且容量要指定一个固定的数,且不支持迭代
 * <p>
 * public class FiexedCapacityStackOfStrings
 * FiexedCapacityStackOfStrings(int cap)   //创建一个容量为cap的空栈
 * void push(String item)                      //添加一个字符串
 * String pop()                                //删除最近添加的字符串(因为栈是后进先出的原理)
 * boolean isEmpty()                           //栈是否为空
 * int size()                                  //栈中的字符串数量
 */
public class 定容栈 {
    private String[] a;     //栈的容量
    private int N;          //集合的长度

    定容栈(int cap){ a =new String[cap];} //容量的大小

    public boolean isEmpty(){return N==0;}

    int Size(){return  N;}

    void push(String item){
        a[N++] = item;
    }
    String pop(){
        return a[--N];
    }

}

定容栈测试

package base.第一章.背包_队列_和栈.数组实现定容栈.定容栈;

import edu.princeton.cs.algs4.StdOut;

/**
 * Created by MK on 2018/7/23.
 *  测试定容栈
 */
public class 定容栈测试 {

    public static void main(String[] args) throws InterruptedException {

        //定容栈的容量这里我设置的是100
        定容栈 s = new 定容栈(100);

        //压入栈中
        s.push("a");
        s.push("b");
        s.push("c");
        s.push("d");



        //将数据弹出,因为是栈所以是后进先出的原理
        /*
         * 这里为什么弹出的是d
         *  理由:
         *      程序是从上往下执行的,当我执行到.push(d),的时候是最后一次执行
         *      因此,最后进入到栈中的就是d
         *
         * */
        StdOut.println(s.pop());
        StdOut.println(s.Size());


    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值