码迷,mamicode.com
首页 > 其他好文 > 详细

泛型定容栈

时间:2014-05-11 15:05:07      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:算法   数据结构   

import java.util.*;

//泛型定容栈 
//泛型:类型参数化,便于处理不同类型的数据
public class FixedCapacityStack<Item> {
	private Item[] a;
	private int N;
	public FixedCapacityStack(int cap){
		// java中不允许直接创建泛型数组,此处用类型转换来实现
		// 这样写会有警告,但可以忽略之
		a=(Item[]) new Object[cap];
	}
	
	public boolean isEmpty() { return N==0; }
	public int size() { return N; }
	
	public void push(Item item){
		a[N++]=item;
	}
	public Item pop(){
		return a[--N];
	}
 	public static void main(String[] args) {
 		FixedCapacityStack<String> s;
 		s=new FixedCapacityStack<String>(100);
 		
 		Scanner cin=new Scanner(System.in);
 		while(cin.hasNext()){
 			String item=cin.next();
 			if(!item.equals("-")){
 				s.push(item);
 				System.out.print("push "+item);
 			}
 			else if(!s.isEmpty()){
 				System.out.print("pop  "+s.pop());
 			}
 			System.out.println(" | "+s.size()+" left on stack");
 		}
	}
}
// test example
to be or not to - be - - that - - - is
push to | 1 left on stack
push be | 2 left on stack
push or | 3 left on stack
push not | 4 left on stack
push to | 5 left on stack
pop  to | 4 left on stack
push be | 5 left on stack
pop  be | 4 left on stack
pop  not | 3 left on stack
push that | 4 left on stack
pop  that | 3 left on stack
pop  or | 2 left on stack
pop  be | 1 left on stack
push is | 2 left on stack


泛型定容栈,布布扣,bubuko.com

泛型定容栈

标签:算法   数据结构   

原文地址:http://blog.csdn.net/dutsoft/article/details/25478075

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!