双向链表:java实现双向链表的增删改,供大家参考,具体内容如下
单向链表,查找的方向只能是一个方向,而双向链表可以向前或者向后查找
单向链表不能自我删除,需要靠辅助节点,而双向链表,则可以自我删除
1、遍历方和单链表一样,只是可以向前,也可以向后查找
2、 添加(默认添加到双向链表的最后)
(1) 先找到双向链表的最后这个节点
(2) temp.next = newHeroNode
(3) newHeroNode.pre = temp
3、修改思路和原来的单向链表一样
4、删除
(1) 因为是双向链表,因此,我们可以实现自我删除某个节点
(2) 直接找到要删除的这个节点,比如temp
(3) temp.pre.next = temp.next
(4) temp.next.pre = temp.pre
代码实现
package com.hsy.linkedlist;
public class DoubleLinkedListDemo {
public static void main(String[] args) {
System.out.println("双向链表测试:");
//先创建节点
HeroNode2 hero1 = new HeroNode2(1, "刘备", "仁义");
HeroNode2 hero2 = new HeroNode2(2, "关羽", "武圣");
HeroNode2 hero3 = new HeroNode2(3, "张飞", "暴躁");
HeroNode2 hero4 = new HeroNode2(4, "赵云", "单骑救主");
//创建一个双向链表
DoubleLinkedList doubleLinkedList = new DoubleLinkedList();
doubleLinkedList.add(hero1);
doubleLinkedList.add(hero2);
doubleLinkedList.add(hero3);
doubleLinkedList.add(hero4);
//显示