• 基本数据结构——链表


      链表中各个对象按线性顺序排列,链表的顺序是由各个对象里的指针决定的。

    链表中每个元素都是一个对象。每个对象中包含一个关键字key和两个指针prev, next分别指针这个对象的前一个对象和下一个对象。关键方法的实现代码如下:

    //定义插入,删除,查找方法
    public class List<E> {
    
        private Node<E> first;    //Pointer to first node.
        private Node<E> last;    //Pointer to last node.
        private int size;
        
        public void insertFirst(E e) {
            Node<E> f = first; 
            Node<E> newNode = new Node<E>(null, f, e);
            first = newNode;
            if(f == null){
                last = newNode;
            }else{
                f.prev = newNode;
            }
            
            size++;
        }
        
        public Node<E> research(E e) {
            Node<E> temp = first;
            while(temp != null && temp.key != e ) {
                temp = temp.next;
            }
            return temp;
        }
        
        public void deleteLast() {
            Node<E> l = last;
            final E element = l.key;
            final Node<E> prev = l.prev;
            l.key = null;
            l.prev = null; // help GC
            last = prev;
            if (prev == null)
                first = null;
            else
                prev.next = null;
            size--;
    
        }
        
        private static class Node<E> {
            Node<E> prev;
            Node<E> next;
            E key;
            
            public Node(Node<E> prev, Node<E> next, E key) {
                this.prev = prev;
                this.next = next;
                this.key = key;
            }        
        }
        
    /*    public static void main(String[] args) {
            List<Integer> list = new List<>();
            list.insertFirst(1);
            list.insertFirst(2);
            list.insertFirst(3);
            list.insertFirst(4);
            list.insertFirst(5);
            
            Node<Integer> node = list.research(1);
            System.out.println(node);
            System.out.println(list.size);
            list.deleteLast();
            node = list.research(1);
            System.out.println(node);
            System.out.println(list.size);
        }*/
    
        
    }
  • 相关阅读:
    JavaScript之图片操作7
    JavaScript之图片操作6
    【数据结构】树
    【数据结构】查找
    【数据结构】排序
    【HTML】常用标签及属性
    【数据结构】堆栈
    【计算机网络】五层体系结构
    【Linux】相关英文缩写含义
    【Java】连接数据库MySQL
  • 原文地址:https://www.cnblogs.com/ming-zi/p/6375902.html
Copyright © 2020-2023  润新知