关于双向链表各种功能的实现(JAVA)

本文介绍了双向链表的概念,以及如何用Java实现双向链表的创建、清空、获取长度、判断空、获取首尾元素、元素插入、获取元素、查找元素位置、删除元素及迭代遍历等操作。通过内部类建立节点结构,详细阐述了每个功能的实现步骤。
摘要由CSDN通过智能技术生成

一、双向链表是什么

双向链表也叫双向表,是链表的一种,它由多个节点组成,每个节点都由一个数据域和两个指针域组成,数据与用来存储数据,其中一个指针域用来指向其后继结点,另一个指针域用来指向前驱结点,链表的头结点数据与不存储数据,指向前驱结点的指针域值为null,指向后继结点的指针域指向第一个真正存储数据的结点。

总的来说,双向链表和单项链表比较类似,不过多了一个指针域,用来指向前驱结点

下面看下双向链表的建立已经各种功能的实现

二、代码的实现

2、1 头结点的创建

 //头结点
    private Node head;
    //最后一个结点
    private Node end;
    //链表的长度
    public int N;

首先,创建一个头结点,和最后一个结点,申请一个公共变量N用来记录链表的结点数

然后我们开始写一个内部类进行方法的书写

2、2内部类的建立

  //结点类
    private class Node{
        public Node(T item,Node pre,Node next){
            this.item=item;
            this.next=next;
            this.pre=pre;

        }
        //存储数据
        public T item;
        //指向上一个结点
        public Node pre;
        //指向下一个结点
        public Node next;


    }

内部类和方法完成后,我们就可以进行链表各种功能的实现

2、3链表的初始化

 

  public DoubleLinklist(){
        //初始化头结点和尾结点
        this.head=new Node(null,null,null);
        this.end=new Node(null,null,null);
        //初始化元素个数
        this.N=0;

    }

我们创建一个方法初始化我们的头结点和尾结点,事实上,头结点的数据域和指向上一个结点的指针域本身就为null,尾结点指向下一个结点的指针域也为null

同时我们让我们用来记录链表长度的N赋值为0

2、4清空链表

 public void clear(){
        this.head.next=null;
        this.end.pre=null;
        this.end.item=null;

        this.N=0;

 如上面所说,我们想要清空链表,只要把头结点指向下一个结点的指针域和尾节点指向上一个结点的指针域和本身的数据域为null即可

2、5获取链表的长度

 //获取链表长度
    public int length(){
        return N;
    }

这个不用多说,直接返回N就行

2、6判断链表是否为空

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南之炎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值