手撕Java集合——链表(Java集合链)

 

 

8896a81a0a754413a77eb4d884bee10b.png

 

一、链表概念特性\n链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的 。\n\n\n特点:\n\n上图每个数据块是一个结点,这些结点一般是从堆上申请来的。\n链式结构在逻辑上是连续的,但物理上不一定连续。\n链表结构由【单向/双向;循环/非循环;带头/不带头】几种形式进行组合,共有2×2×2=8种不同结构,不过我们常用的主要是 单向不带头非循环链表 和 双向不带头非循环链表 。对于前者来说,结构简单,一般不会单独用来存数据。实际中更多是作为其他数据结构的子结构,如哈希桶、图的邻接表等等。另外这种结构在笔试面试中出现很多。对于后者,在Java的集合框架库中LinkedList底层实现就是无头双向非循环链表。\n\n接下来我们就以不带头单向非循环链表和不带头双向循环链表进行展开,分别模拟实现它们的主要功能。\n\n二、不带头单向非循环链表实现\n首先给出功能接口(实现时元素类型为int):\n\n//1.打印链表\npublic void display() {}\n\n//2.递归逆序打印链表\npublic void displayReverse(SingleLinkedList.ListNode node) {}\n\n//3.头插法\npublic void addFirst(int data) {}\n\n//4.尾插法\npublic void addLast(int data) {}\n\n//5.任意位置插入,第一个数据节点为0号下标\npublic boolean addIndex(int index

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值