JAVA 实现双向链表根据节点大小按顺序新增、修改、删除操作

本文介绍了如何在JAVA中实现双向链表的有序插入、修改和删除操作。通过向后查找的方式遍历链表,确保节点按照大小顺序排列。在添加节点时,找到合适的位置并更新前后节点;修改节点则直接定位并更新;删除节点则调整相邻节点的链接。代码示例展示了整个过程。
摘要由CSDN通过智能技术生成

单向链表查找的方向只能是一个方向,而双向链表可以向前或者向后查找。

结合 JAVA 实现带头结点的链表根据节点大小按顺序新增、修改、删除节点 单向链表的操作。在单向链表的基础上进行双向链表的增删改就比较简单了。

根据上图,分析双向链表的新增,修改、删除操作思路:

1) 遍历 方和 单链表一样,可以向前查找,也可以向后查找。本文使用向后查找的方式遍历 双向链表。

2) 添加 (按照节点的大小顺序插入到双向链表中)

   (1) 先通过遍历,找到双向链表中比新节点大的节点。如果找到链表中已存在要添加的新节点,则提示不能添加

   (2)反之,则新节点的下个节点即为当前节点的下个节点  newHeroNode.next = temp.next;

   (3)当前节点的下个节点为新节点  temp.next = doubleNode;新节点的前一节点为当前节点:doubleNode.previous = temp;

3) 修改 思路和 原单向链表的修改思路一样.找到双向链表中相同编号的节点,并直接修改

4) 删除节点

   (1) 首先要设置一个temp节点,使用while循环遍历双向链表,查找到要删除的节点。

   (2) 找到要删除的节点后,设置被删除节点的前一个节点的next 为 被删除节点的next。

   (3) 如果被删除节点的next不为空,则被删除节点的下个节点的previous为被删除节点的前一个节点temp.next.previous = temp.previous。

 

代码实现

1、先创建一个DoubleNode对象,即链表中的节点对象

class DoubleNode{
    public int no;
    public String name;
    public String nickName;
    public DoubleNode next;
    public DoubleNode previous;


    public DoubleNode(int no,String name,String nickName){
        this.no = no;
        this.name = name;
        this.nickName = nickName;
    }

    @Override
    public String toString() {
        return "DoubleNode{" + &#
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值