算法设计与分析——线性表

1.线性表的特征:

(1)第一个数据元素没有前驱,这个元素称为头结点

(2)最后一个数据元素没有后继,这个元素称为尾结点

(3)除了第一个和最后一个元素外,其他数据元素有且仅有一个前驱和一个后继

2.线性表分类:线性表中数据存储方式可以是顺序存储,也可以是链式存储,按照数据存储方式不同,可以吧线性表分为顺序表链表

顺序表:在计算机内存中以数组的形式保存的线性表,即用一组地址连续地存储单元,依次存储线性表的各个元素,使得线性表中逻辑上相邻的元素在物理上也相邻。

ArrayList的底层是一种顺序表,使用数组实现,同样提供了增删改查以及扩容等功能

常用方法:

(1)add (Object element):在末尾插入指定元素

(2)add(int index, Object element): 在指定位置插入指定元素

(3)remove(int index):删除列表中指定位置的元素,并返回被删元素

(4)remove(Object element): 删除集合中第一次出现的指定元素,成功返回true,否则返回false

(5)set(int index, Object element): 将索引i位置元素替换为元素element并返回被替换的元素

(6)contains(Object element) :判断元素是否存在(如果列表包含指定的元素,则返回 true)

(7)indexOf(Object element):获取指定元素索引

(8)get(int index):根据索引获取元素

(9)isEmpty(): 判断是否为空

(10)size():返回列表中的元素个数

(11)clear(): 从列表中移除所有元素

单向链表:由多个结点组成,每个结点都由一个数据域和一个指针域组成,数据域用来存储数据,指针域用来指向后继结点,链表的头结点不存储数据,指针域指向第一个真正存储数据的结点。

双向链表:由多个结点组成,每个结点都由一个数据域和两个指针域组成,数据域用来存储数据,一个指针域用来指向其前驱结点,另一个指针域用来指向后继结点,链表的头结点不存储数据,指向前驱结点的指针域值为null,指向后继节点的指针域指向第一个真正存储数据的结点。

LinkedList是一个双向链表,它也可以被当作堆栈、队列或双端队列进行操作

常用方法:

(1)add (Object element):在链表后添加一个元素

(2)add (int index,Object element):在指定位置插入一个元素

(3)push(Object element):与addFirst方法一致

(4)offer(Object element):在链表尾部插入一个元素

(5)remove():移除链表中第一个元素

(6)remove(Object element):移除链表中指定元素

(7)pop():和removeFirst方法一致,删除头

(8)poll():查询并移除第一个元素

(9)get(int index):按照下标获取元素

(10)peek():获取第一个元素,但是不移除

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值