美文网首页
自己动手写数据结构之双端链表

自己动手写数据结构之双端链表

作者: 逍遥白亦 | 来源:发表于2020-12-19 12:11 被阅读0次

    双端链表实现

    1 定义

    双端链表与传统的链表很相似,但是它有一个新增的特性;即对最后一个链结点的引用

    2 基本操作

    表头插入 insertFirst

    表尾插入 insertLast

    表头删除 deleteFirst

    3 基本元素

    链表头 First

    链表尾 Last

    节点 Node

    节点中数据域 data

    节点中指针域 next

    4 思路

    First与Last

    链表为空时first与last均为Null

    链表中只有一个结点时,first与last均指向第一个结点

    正常情况下,first指向第一个结点,last指向最后一个结点

    表头插入 insertFirst

    注意区分链表为空和不为空的情况

    链表为空时,last = newNode

    newNode.next = first

    first = newNode

    表尾插入 insertLast

    注意区分链表为空和不为空的情况

    链表为空时,first = newNode

    last.next = newNode

    last = newNode

    表头删除 deleteFirst

    代码实现

    public class FirstLastLinkedList {
    
        private Node first;
    
        private Node last;
    
        public FirstLastLinkedList() {
            first = null;
            last = null;
        }
    
        public void insertFirst(int data){
            Node newNode = new Node(data);
            newNode.next = first;
            first = newNode;
            if (isEmpty()){
                last= newNode;
            }
        }
    
        public void insertLast(int data){
            Node newNode = new Node(data);
            if (isEmpty()){
                first = newNode;
            }else {
                last.next = newNode;
            }
            last = newNode;
        }
    
        public int deleteFirst(){
            int temp = first.data;
            if (first.next == null){
                last = null;
            }
            first = first.next;
            return temp;
        }
    
        private boolean isEmpty(){
            return first == null;
        }
    
        class Node{
    
            private int data;
    
            private Node next;
    
            public Node(int data) {
                this.data = data;
            }
    
            @Override
            public String toString() {
                return "Node{" +
                        "data=" + data +
                        '}';
            }
        }
    
    }
    

    相关文章

      网友评论

          本文标题:自己动手写数据结构之双端链表

          本文链接:https://www.haomeiwen.com/subject/bjaqnktx.html