数据结构(数组和单链表)

1.数组

1.1 ArrayList

优点:查找快,删除快

缺点:扩容差;删除和添加元素时,开销大(需要移动大量元素)

1.2 自定义一个ArrayList,底层需要维护一个数组

所需功能:

(1)添加:addFirst(E e) addLast(E e) add(int index, E e)

(2)删除: remove(int index) remove(E e)

(3)是否包含某个元素: contains(E e)

(4)长度(元素个数)

(5)修改:set(int index,E e)

(6)获取元素: get(int index)

(7)获取下标: getIndex( E e)

(8)扩容: 设置最大容量为Integer.MAX_VALUE-8, 扩容为原数组的1.5倍,当扩容大于最大容量时,扩容为最大容量;当扩容小于默认容量时,扩容为默认容量。

所需成员变量:

(1)arrayList [] elementdata 数组

(2)size 元素个数

(3)capacity 数组容量/数组长度(固定长度)

1.3 栈 stack

特点:先进后出,后进先出,只能操作栈顶元素

功能:

void push(E e) 入栈

E pop() 出栈

E peek() 获取栈顶元素

1.4队列 queue (排队)

特点:先进先出

功能:

enqueue(E e) 入队

dequeue (E e)出队

getFront() 获取头部元素

getSize() 获取长度

2.单向链表(物理上不连续,逻辑上连续)

特点:一个节点(node)记录了下一个节点的位置信息(next),只能从前面往后面查询,需要记录头节点。

功能:

从头部添加元素

删除

修改

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值