爪哇国新游记之十八----泛型栈类

简介:
复制代码
import java.lang.reflect.Array;

/**
 * 泛型栈
 *
 * @param <T>
 */
public class Stack<T>{
    private Class<T> type;// 栈元素所属的类
    private int size;// 栈深度
    private T[] arr;// 用数组存储
    private int top;// 栈顶元素的下标
    
    public Stack(Class<T> type,int size){
        this.type = type;
        this.size=size;
        arr=createArray(size);
        top=-1;
    }
    
    /**
     * 创建数组
     * @param size
     * @return
     */
    @SuppressWarnings("unchecked")    
    private T[] createArray(int size) {    
        return (T[]) Array.newInstance(type, size);    
    }
    
    /**
     * 压栈
     * @param t
     */
    public void push(T t){
        top++;
        arr[top]=t;
    }
    
    /**
     * 出栈
     * @return
     */
    public T pop(){
        T t=arr[top];
        top--;
        return t;
    }
    
    /**
     * 取栈顶元素
     * @return
     */
    public T peek(){
        return arr[top];
    }
    
    /**
     * 判断栈是否为空
     * @return
     */
    public boolean isEmpty(){
        return top==-1;
    }
    
    /**
     * 判断栈是否满了
     * @return
     */
    public boolean isFull(){
        return top==(size-1);
    }
    
    
    public static void main(String[] args){
        Stack<String> s=new Stack<String>(String.class,100);
        s.push("以恒心为良友");
        s.push("以经验为参谋");
        s.push("以小心为兄弟");
        s.push("以希望为哨兵");
        
        while(!s.isEmpty()){
            String str=s.pop();
            System.out.println(str);
        }
        
    }
}
复制代码

输出:

以希望为哨兵
以小心为兄弟
以经验为参谋
以恒心为良友












,如需转载请自行联系原作者



相关文章
|
23天前
|
消息中间件 存储 搜索推荐
深入理解栈和队列(二):队列
深入理解栈和队列(二):队列
36 0
|
2月前
|
存储 开发工具
栈存储结构详解
栈存储结构详解
42 7
|
2月前
【栈】数据结构栈的实现
【栈】数据结构栈的实现
|
2月前
|
存储
数据结构--栈和队列
数据结构--栈和队列
|
2月前
|
存储 算法 数据处理
数据结构从入门到精通——栈
栈,作为一种后进先出(LIFO)的数据结构,在计算机科学中扮演着重要的角色。它的特性使得它在处理函数调用、括号匹配、表达式求值等问题时具有得天独厚的优势。然而,如果我们跳出传统思维的束缚,会发现栈的用途远不止于此。
59 0
|
2月前
|
C语言
数据结构之栈详解(C语言手撕)
数据结构之栈详解(C语言手撕)
37 1
|
2天前
|
算法
栈刷题记(二-用栈操作构建数组)
栈刷题记(二-用栈操作构建数组)
|
2天前
栈刷题记(一-有效的括号)
栈刷题记(一-有效的括号)
栈刷题记(一-有效的括号)
|
6天前
|
C语言
数据结构中顺序栈的进栈和出栈用C语言表示
数据结构中顺序栈的进栈和出栈用C语言表示
13 1