zoukankan      html  css  js  c++  java
  • 双端链表

    双端链表的概念:链表中保存着对最后一个节点引用的链表。

    1. 链表头部插入

    如果链表为空,要对链表尾部处理

    Element el = new Element(data);
    if(first == null){
       last = el;
    }
    el.next = first;
    first=el;
    

     

    2. 链表尾部插入

    如果链表为空,要对头节点进行处理

    Element el = new Element(data);
    if(first == null){
        first = el;
    }else{
        last.next = el;
    }
    last = el;
    

      

    3. 链表头部删除节点

    Element el = first;
    if(el.next != null){
          last = null;
    }
    first = el.next;
    

      

    code

    public class Element {
        public Object object;
        public Element next;
    
        public Element(Object object){
            this.object = object;
        }
    
        public void display(){
            System.out.println(this.object);
        }
    }
    public class DoubleLinkList {
        Element first;
        Element last;
        public DoubleLinkList(){
            first = null;
            last = null;
        }
    
        //从头结点开始插入
        public void addFirst(int data){
            Element el = new Element(data);
            if(first == null){
                last = el;
            }
            el.next = first;
            first=el;
        }
    
        //从尾结点开始插入
        public void addLast(int data){
            Element el = new Element(data);
            if(first == null){
                first = el;
            }else{
                last.next = el;
            }
            last = el;
        }
    
        //从头节点开始删除
        public void deleteFirst(){
            Element el = first;
            if(el.next != null){
                last = null;
            }
    
            first = el.next;
        }
    
        public void display(){
            Element element = first;
            while (element != null){
                element.display();
                element=element.next;
            }
        }
    }
    public class Demo {
        public static void main(String[] args){
            DoubleLinkList dll = new DoubleLinkList();
            dll.addFirst(1);
            dll.addFirst(2);
            dll.addFirst(3);
            dll.addFirst(4);
            dll.addLast(6);
            dll.addFirst(5);
            dll.addLast(8);
            dll.display();
            System.out.println("删除元素之后");
            dll.deleteFirst();
            dll.display();
        }
    }
    View Code
  • 相关阅读:
    开源数学库
    ZendFramework综述
    MySQL临时表
    GMP for PHP
    ubuntu的LAMP环境搭建
    linux与windows区别
    js对象与打印对象
    MySQL 多库操作
    ubuntu文件系统综述
    波形声音整理资料(for Project1)
  • 原文地址:https://www.cnblogs.com/mutong1228/p/10770683.html
Copyright © 2011-2022 走看看