简单的链式存储实现原理

从《java编程思想中》阅读到,作一下笔记

/**
 * @author zhouming
 * @date 2018\5\26 0026 12:39
 *
 */
public class MyLinkedList<T> {
    /**
     * 链式存储类
     * @param <U>
     */
    private static  class  Node<U>{
        //当前这个节点的值
        private U nowData;
        //下一个链式节点
        private  Node<U> next;
        //使用无惨构造初始化当前值与下一个节点
        public Node() {
            nowData = null;
            next = null;
        }
        //使用有参构造来设置值
        public Node(U u, Node<U> next) {
            this.nowData = u;
            this.next = next;
        }
        //判断是否还有下一个值
        public boolean end(){
            return nowData == null && next == null;
        }
    }
    //初始化链头
    private Node<T> node = new Node<>();
    
    public void add(T t){
        // 将旧的node存入到新的node中并将新的node返回,
        // 下次再存入值时又将这个新的node存入即将生成新的node中
        // 再次返回一个新的node
        node = new Node<T>(t,node);
    }
    //取值
    public T get(){
        //获取到当前值
        T value = node.nowData;
        //先进行判断是否容纳了下一个,如果有则将top的引用指向其本身所容纳的下一个Node
        if(!node.end()){
            node = node.next;
        }
        return  value;
    }

    public static void main(String[] args) {
        MyLinkedList<String>  list = new MyLinkedList<>();

        list.add("111");
        list.add("222");
        list.add("333");

        String s = null;
        while((s = list.get()) !=null){
            System.out.println(s);
        }
    }

}

猜你喜欢

转载自www.cnblogs.com/hetutu-5238/p/9092659.html