数据结构_06线性表

线性表

  1. 前驱元素与后继元素
  2. 头节点与尾节点
  3. 除了头节点与尾节点,其他元素有且只有一个前驱和后继元素
顺序表
  1. 顺序表的容量可变
    1. 在插入元素时不管是直接插入(无参数,直接在尾部插入),还是定点插入(在指定位置处插入),都需要先判断容量是否已满,若是,则调用另外的扩容函数(其实就是新建一个2倍容量的顺序表,指向原来的表,并将数值复制到新表中)
  2. 时间复杂度
    各个方法的复杂度
  3. 顺序表底层是由数组实现,而数组的长度是固定的,在操作中涉及到扩容时,会导致操作某些需要扩容的元素时,时间复杂度会剧增,这样就会导致时间复杂度不是线性的
  4. ArrayList
    1. 用数组实现
    2. 有扩容操作
    3. 提供遍历的方式
  5. 在这里插入图片描述
链表
  1. 单向链表——LinkList
    单向链表头节点的item为null
  2. 双向链表——TowWayLinkList
    每个结点都包括一个数据域,两个指针域pre,next
    双向链表的头节点的为null,item也为null,
  3. LinkedList集合使用双向链表
  4. 链表反转
  5. 快慢指针——快指针的速度一般设置为慢指针的两倍
    1. 中间值问题
    2. 单向链表有环问题
    3. 有环链表入口问题
    在单向链表确定有环时,加上一个temp指针从first结点开始,同样每次移动一个节点,最终与慢指针重合于入口处
  6. 循环链表
    约瑟夫问题
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值