对泛型栈的学习

无奈专业内暂无数据结构与算法可
最近在利用Java进行数据结构与算法的学习
看的是Robert Sedgewick的算法(第四版)
进行到泛型栈的学习(其实已经知道很多数据结构和算法,只是希望 用Java配个这本书实现学习一遍,巩固,增强)

泛型栈代码:

FixedCapacityStackOfStrings.java

package fixedCapacityStackOfStrings;

public class FixedCapacityStackOfStrings<T> {

        private int N =0 ;

        private T a[] ;

        public FixedCapacityStackOfStrings(int caps) {
            a= (T[]) new Object[caps] ;
        }

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

        public int size()       {return N ;}

        public void push(T obj)     { a[N++] = obj ;}

        public T pop()  { return a[--N] ;}

}

代码极其简洁,每个方法只有一行。

测试类
Test.java

package fixedCapacityStackOfStrings;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        FixedCapacityStackOfStrings<String> foo = new FixedCapacityStackOfStrings<String>(100);
        try {
            /*
             * 使用Scanner从终端读取字符串
             */
        Scanner sc = new Scanner(System.in);
        /*
         * 当终端仍有输入时循环
         */
        while(sc.hasNext()){
            String s = sc.next();
            /*
             * 设置字符串 "-"为出站标志
             */
            if(s.equals("-") && !foo.isEmpty()) 
                System.out.print(foo.pop() + " ");
            /*
             * 顺便玩一下compareTo方法
             * 若输入的字符串不为"-"即将其入栈
             */
            else if(s.compareTo("-")!=0)
                foo.push(s);
            }
        sc.close();
        }catch(Exception e){
            System.out.println("Something wrong");
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值