在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

java中的双向链表怎么实现

132次阅读
没有评论

共计 1598 个字符,预计需要花费 4 分钟才能阅读完成。

在 Java 中,可以使用自定义的双向链表类来实现双向链表。以下是一个简单的双向链表的实现示例:

public class DoublyLinkedList<T> {
    private Node<T> head; // 链表头节点
    private Node<T> tail; // 链表尾节点

    // 链表节点类
    private static class Node<T> {
        private T data; // 节点数据
        private Node<T> prev; // 前一个节点引用
        private Node<T> next; // 后一个节点引用

        public Node(T data) {this.data = data;}
    }

    // 在链表末尾添加节点
    public void add(T data) {Node<T> newNode = new Node<>(data);
        if (head == null) {
            head = newNode;
            tail = newNode;
        } else {
            newNode.prev = tail;
            tail.next = newNode;
            tail = newNode;
        }
    }

    // 在链表指定位置插入节点
    public void insert(int index, T data) {if (index < 0 || index > size()) {throw new IndexOutOfBoundsException();
        }

        Node<T> newNode = new Node<>(data);
        if (index == 0) {if (head == null) {
                head = newNode;
                tail = newNode;
            } else {
                newNode.next = head;
                head.prev = newNode;
                head = newNode;
            }
        } else if (index == size()) {
            tail.next = newNode;
            newNode.prev = tail;
            tail = newNode;
        } else {Node<T> current = getNode(index);
            newNode.prev = current.prev;
            newNode.next = current;
            current.prev.next = newNode;
            current.prev = newNode;
        }
    }

    // 获取链表指定位置的节点
    private Node<T> getNode(int index) {if (index < 0 || index >= size()) {throw new IndexOutOfBoundsException();
        }

        Node<T> current = head;
        for (int i = 0; i < index; i++) {current = current.next;}
        return current;
    }

    // 移除链表指定位置的节点
    public void remove(int index) {if (index < 0 || index >= size()) {throw new IndexOutOfBoundsException();
        }

        if (index == 0) {
            head = head.next;
            if (head == null) {tail = null;} else {head.prev = null;}
        } else if (index == size() - 1) {
            tail = tail.prev;
            tail.next = null;
        } else {Node<T> current = getNode(index);
            current.prev.next = current.next;
            current.next.prev = current.prev;
        }
    }

    // 获取链表大小
    public int size() {
        int count = 0;
        Node<T> current = head;
        while (current != null) {
            count++;
            current = current.next;
        }
        return count;
    }
}

以上是一个简单的双向链表类的实现示例,你可以使用该类来创建双向链表并进行插入、移除、获取节点等操作。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-16发表,共计1598字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 精品国产成人 | 国产成人综合亚洲亚洲欧美 | 午夜片在线观看 | 欧美色欧美亚洲另类二区 | 日本特黄aaaaaaa大片 | 亚洲艹| 国产福利福利视频 | 131美女爱做视频 | 亚洲视频影院 | 精品999久久久久久中文字幕 | 99久久99这里只有免费的精品 | 国产黄色片子 | 黄色激情视频在线观看 | 久久精品美乳 | 中文资源在线观看 | 日韩欧美亚洲国产 | 久久综合国产 | 亚州中文字幕 | 亚洲视频综合网 | 人妻少妇乱子伦精品无码专区电影 | 熟女无套高潮内谢吼叫免费 | 特黄一级视频 | 一级做a爰性色毛片 | 少妇放荡的呻吟干柴烈火免费视频 | 亚洲成a人在线看天堂无码 亚洲成本人网亚洲视频大全 | 一本一道av无码中文字幕﹣百度 | 亚洲男人的天堂在线播放 | 色人视频| 在线污网站 | 亚洲综合欧美日韩 | 亚洲人成色7777在线观看不卡 | 男女超爽视频免费播放 | 日韩精品电影在线 | 视频免费黄色 | 免费看美女下面啪啪流水 | 日本一级大毛片a一 | 国产极品美女到高潮 | 色播在线观看 | 偷妻之寂寞难耐2中文字幕 偷青青国产精品青青在线观看 | 日韩美女奶水喂男人在线观看 | 黄动漫视频在线观看 |