说到LinkedList,相信大部分Java开发者都知道。但是皮唐纳可能不知道。
分享之前,我先说说我为什么写这篇文章。
大部分读者都知道我是安卓开发者,我最熟悉的语言是Java。集合在Java中其实是一个很重要的概念,LinkedList只是集合中的一个实现类。当然,LinkedList不是Java中唯一的集合,但它是Java中使用双链表的代表性类。
许多Java开发人员可能知道双链接列表的结构和好处,毕竟JDK已经提供了类链接列表。
这次我也是通过JDK LinkedList的实现原理,用Python来实现这样的数据结构。本文还将让您对这种数据结构有更深入的了解。
好的,文本...
至于“集合”是什么,不用细说,可以理解为一组元素。
其实说到LinkedList,会有一个相对集合ArrayList。这两个是Collection的实现类。当然,两者是有区别的。ArrayList用数组实现,LinkedList用链表实现(双向)。
为什么会有这样的数据结构集合?
在讨论这个之前,我先对这两种数据结构做一个科学的研究。
众所周知,数组可以理解为一组线性的、连续存储的数据结构。链表是由指针关联的数据结构。
例如:
如上,从迭代器继承的子类。我们在构造函数中添加了外部参数,因为我们需要在链接列表中使用链接列表中的参数,所以我们在构造函数中添加了一个外部传入链接列表的实例
5.开始实施链接列表
上面的步骤已经提供了我们编写LinkedList所需的基本类,接下来我们可以具体实现逻辑了。
在实现逻辑之前,需要再提一下:前面的内容提到了两个“标记节点”,一个头节点和一个尾节点。
因此,我们需要在构造函数中添加这两个标记节点。
一、构造函数
尺寸(自身)
事实上,大小方法非常简单,因为每次我们添加时,都会增加这个大小。因此,该大小必须是该链表的长度。
我是空的
直接判断这个大小就可以了。
f、移除(自身、索引)
明白了加的逻辑,再去掉就比较简单了。我们得到需要删除的节点,然后修改前驱动器和后驱动器。
您可以返回一个自定义迭代器的实例,输入参数是当前的LinkedList实例。
最后,让我们测试这个链接列表
打印结果如下:
1.《双向链表 用Python实现一个 LinkedList(双向链表)》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《双向链表 用Python实现一个 LinkedList(双向链表)》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/fangchan/1039528.html