自定义双向链表

本文介绍了双向链表的基本概念,详细阐述了节点类的设计,包括数据域和指针域。接着,讨论了如何创建双向链表,包括从头部和尾部插入节点的逻辑,并讲述了删除节点的操作,分别是从头部和尾部删除。最后,提供了两个测试用例来验证双向链表的功能,测试结果显示双向链表操作正确。
摘要由CSDN通过智能技术生成

 

双向链表的含义:

每个节点保存着下一个节点的引用,同时还保存着对前一个节点的引用

 

节点类的定义:

节点类中需要定义数据域、和指针域,其中指针域包括下一个节点和前一个节点。

/** 
 * 链节点
 */
public class Node {
	//数据域
	public long data;
	//节点域(指针域)
	public Node next;
	public Node previous;
	
	public Node(long value) {
		this.data=value;
	}
	/**
	 * 显示方法
	 */
	public void display(){
		System.out.print(data+" ");
	}
}

双向链表创建:

1.双向链表是在双端链表基础上得来的,所以双向链表中需要定义头结点和尾节点。

public class DoubleLinkedList {
	//头结点
	private Node first;
	//尾节点
	private Node last;
	
	public DoubleLinkedList() {
		first = null;
		last = null;

    
    //待补充...

	}
}

2.从头部进行插入:

要对链表进行判断,如果空则设置尾节点为新添加的节点。如果不为空,还需要设置头结点的前一个节点为新添加的节   点。

public class DoubleLinkedList {
	//头结点
	private Node first;
	//尾节点
	private No
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值