基于java的数据结构与算法(第二话)之单向链表、双向链表

单向链表:

​ 多个节点构成,每个节点都由一个数据域(储存数据)+一个指针域(指向后继节点)组成,头 节点数据域是null,尾节点指针域null。

​ 插入过程的实现:例如i节点前插入一个新节点:1.找到i-1节点 ; 2. 创建新节点 ;3. i-1指针域

指向新节点 ; 4. 新节点指针域指向i节点 ;

​ 删除实现 :例如删除 i 节点 , i -1 指针域指向 i+1 节点 ;

​ 查找元素(index Of(T t))在链表中第一次出现的位置的实现:从头节点开始依次找到每个节点,并和想要找的元素进行对比;

双向链表:

​ 多节点构成,每节点各由一个数据域+两个指针域:pre + next(指向前后节点)构成 ,头节点pre 和数据域为null ,尾节点next 为null;

​ 链表清空实现:头节点的 next 为null + 尾 节点 整体为null + 当前链表元素个数为0 ;

​ 第一个元素是头节点的下一个元素;最后一元素是尾节点;

​ 插入节点:1.若链表为空:直接创建尾节点,让头节点指向尾节点;

​ 2.若链表不为空:方法和单向链表一样道理;

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值