Java-数据结构-链表以及部分简单方法的实现

本文介绍了链表的基本概念,包括节点结构、链表类的属性和方法(如初始化、添加、删除、替换和打印),特别强调了尾插法在提高添加节点效率上的作用。通过主函数展示了删除和添加节点的测试,以及替换节点的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

· 链表由多个节点对象组成,通过第一个节点对象去查找其它节点

·数据存储在节点当中

节点的结构:

1.存储数据的变量

2.存储下一个节点的变量

3.设计一些存储其它数据的内容

链表的实现:

节点类

链表类:用来操作节点的类

        属性:头节点  节点数量

        方法:

                初始化方法

                添加节点方法

                删除方法

                替换方法

                查找节点方法

                打印链表方法

链表的实现:

创建一个Node节点类,创建构造方法,使用this关键字访问实例变量。

再定义一个头节点,一个尾节点(引入尾插法,后面会讲),一个节点数量。

(代码的逻辑,帮助自己和他们梳理)

这是耗时较久的一种添加方法,比如我们通过for循环想要传入hello0到hello10,先将hello0参数传入,然后将hello0赋值给node,因为此时头节点中为空,所以if语句将执行,node中的hello0,赋值给head,然后size++,然后跳出方法体,此时又将hello1,传入node,head里不为空,if语句不执行,此时将head中的hello0赋值给temp,while循环条件为假,不执行,然后将node中的hello1赋值给temp.next,size++,然后又将hello2传入,node为hello2,hello1不为空,所以hello1传给了temp,node中的hello2赋值给了temp.next,第四次循环时,因为我们在while循环前始终时将head赋值给temp,所以我们每次都要从头节点依次向下寻找,依次迭代替换,直到更新完最新的节点,这样的话,在效率上十分的低,所以我们此时引入尾插法来提高我们代码的执行效率。

正如注释中所阐明的,这里将不再做解释。利用为尾插法存储数据,我们理解起来会更容易,当然计算机执行起来也会更轻松,效率也会更高,我们用主函数去测试执行整个程序所需的时间,进行对比,我们就会发现这个显然的结果(下面会进行解释)。

移除元素方法:首先先进行判断,判断传进来的参数是否为空,然后再进行分类讨论,如果我们要删除的是头节点,那么我们可以直接将头节点的下一个节点中的属性赋值给head,将头节点替换掉,如果要删除的不是头节点,那么我们将temp.next赋值给temp直到temp.next.value和传入的参数即要删除的参数相同,我们就将temp.next.next赋值给temp.next这样,我们需要删除的节点就被它的下一个替换掉了,被删除的节点之后的节点,将会通过while循环,依次向前填充,这样就实现了元素移除的方法。

打印链表的方法:

主函数中对删除节点的测试和对添加节点效率的测试。

替换节点的方法:

替换节点的方法:

这就是简单的链表,以及实现的一些简单方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值