zoukankan      html  css  js  c++  java
  • java 实现链栈存储

    package com.learn.algorithm.linkStack;
    /**
     * 链栈实现
     * @author Jiekun.Cui
     * @param <T>
     */
    public class LinkStack<T> {
    
        private LinkStack<T>.Node<T> top = new Node<T>();
        private int size=0;
        
        /**
         * 进栈
         * @param t
         * @return  ;
         */
        public boolean push(T t){
            
            if ( isEmpty() ) {
                top.next = new Node<T>(t);
                
            } else {
                Node<T> newNode = new Node<T>(t, top.next);
                top.next = newNode;
            }
            size ++ ;
            return true;
        }
        
        /**
         * 出栈
         * @param t
         * @return
         */
        public T pop(){
            
            if ( isEmpty() ) {
                return  null;
            } else {
                LinkStack<T>.Node<T> node = top.next;
                top.next = node.next;
                size --;
                return node.getT();
            }
        }
        
        
        /**
         * 获取栈顶元素
         * @return
         */
        public T getTop(){
            if ( isEmpty() ) {
                return  null;
            } else {
                return top.next.getT();
            }
        }
        
        
        /**
         * 判断栈是不是为空
         * @return
         */
        public boolean isEmpty(){
            return size() == 0;
        }
        
        /**
         * 返回栈的大小
         * @return
         */
        public int size(){
            return size;
        }
        
        
        
        
        /**
         * @author 链栈的节点类
         * @param <T>
         */
        class Node<T>{
            private T t = null;
            private Node<T> next = null;
            
            public Node(){
                
            }
            public Node(T t){
                this.t = t;
            }
            public Node(T t,Node<T> next){
                this.t = t;
                this.next =next;
            }
            
            
            public T getT() {
                return t;
            }
            public void setT(T t) {
                this.t = t;
            }
            
            public Node<T> getNext() {
                return next;
            }
            public void setNext(Node<T> next) {
                this.next = next;
            }
        }
    }
    package com.learn.algorithm.linkStack;
    
    /**
     * 链栈测试
     * @author Jiekun.Cui
     */
    public class Demo {
        
        public static void main(String[] args) {
            LinkStack<Integer> ls = new LinkStack<>();
            
            ls.push(1);
            ls.push(2);
            ls.pop();
            ls.push(4);
            ls.push(5);
            ls.push(6);
            
            
            while ( !ls.isEmpty() ) {
                System.out.println(ls.pop());
            }
            
        }
    
    }

     以上代码。

  • 相关阅读:
    曲演杂坛--Update的小测试
    曲演杂坛--使用TRY CATCH应该注意的一个小细节
    Backup--查看备份还原需要的空间
    INDEX--创建索引和删除索引时的SCH_M锁
    曲演杂坛--蛋疼的ROW_NUMBER函数
    曲演杂坛--使用ALTER TABLE修改字段类型的吐血教训
    曲演杂坛--查看那个应用连接到数据库
    TempDB--临时表的缓存
    (转)spark日志配置
    CDH版本java开发环境搭建
  • 原文地址:https://www.cnblogs.com/Jiekun-Cui/p/7354533.html
Copyright © 2011-2022 走看看