package datastructures.linked; import java.util.Iterator; /** * @author warriorg */ public class DoublyLinkedList<T> implements Iterable<T> { private ...
分类:
其他好文 时间:
2020-07-10 19:19:46
阅读次数:
52
简述ArrayList、LinkedList区别 1) ArrayList是数组的数据结构,LinkedList是双向链表的数据结构. 2) ArrayList在访问数组的下标时效率比较高,在新增和删除时因为会对操作点之后的数据下标造成影响,所以效率比较低, 3) LinkedList因为是链表的结 ...
分类:
编程语言 时间:
2020-07-09 16:40:54
阅读次数:
65
1.new、delete、malloc、free关系 delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光 ...
分类:
编程语言 时间:
2020-07-07 19:33:55
阅读次数:
246
线程安全: ArrayList 和 LinkedList 都是线程不安全的, 它们的方法之间都是不同步的. 底层数据结构: ArrayList 底层是使用 Object 数组; LinkedList 底层是使用双向链表数据结构. 快速访问随机元素: ArrayList 支持高效的快速访问随机元素, ...
分类:
其他好文 时间:
2020-07-06 00:37:16
阅读次数:
68
数组 实现一个支持动态扩容的数组 实现一个大小固定的有序数组,支持动态增删改操作 实现两个有序数组合并为一个有序数组 链表 实现单链表、循环链表、双向链表,支持增删操作 实现单链表反转 实现两个有序的链表合并为一个有序链表 实现求链表的中间结点 栈 用数组实现一个顺序栈 用链表实现一个链式栈 编程模 ...
分类:
编程语言 时间:
2020-07-05 13:12:20
阅读次数:
89
问题描述 : 假设2个任意长度的整数x、y分别由双向链表A和B存储,现要求设计一个算法,实现x+y。计算结果存储在链表C中。 说明: 由于A和B输出时需要从头至尾遍历,而做加法时需要从尾至头遍历,因此使用双向链表存储。 可以从长整数的低位开始拆分(4位为一组,即不超过9999的非负整数),依次存放在 ...
分类:
其他好文 时间:
2020-07-01 23:48:24
阅读次数:
291
实现类:ArrayDeque和LinkedList 作用:Deque既可以做栈使用也可以做队列使用; 缺点:Deque违背了单一职责性原则 ArrayDeque: ArrayDeque是Deque接口的一种具体实现,是依赖于可变数组来实现的。ArrayDeque 没有容量限制,可根据需求自动进行扩容 ...
分类:
其他好文 时间:
2020-06-30 17:27:23
阅读次数:
61
https://segmentfault.com/a/1190000012964859 LinkedHashMap 继承自 HashMap,在 HashMap 基础上,通过维护一条双向链表,解决了 HashMap 不能随时保持遍历顺序和插入顺序一致的问题。除此之外,LinkedHashMap 对访问 ...
分类:
其他好文 时间:
2020-06-28 18:09:56
阅读次数:
36
1.介绍 redis中的list既实现了栈(先进后出)又实现了队列(先进先出) 1.示意图 2.各命令详解 LPUSH/RPUSH LPUSH: 从队列的左边入队一个或多个元素 将所有指定的值插入到存于 key 的列表的头部。如果 key 不存在,那么在进行 push 操作前会创建一个空列表。 如果 ...
分类:
其他好文 时间:
2020-06-27 11:56:54
阅读次数:
143
分析下面的requ : 1. 用hashtable 2. 用vector 或者list都可以 3. 第三点只可以用List做 所以在第一层我们需要一个hashtable,去存key, 然后key里面去存指针; 第二层的双向链表支持o(1)复杂度的插入,删除和移入操作。 ...
分类:
其他好文 时间:
2020-06-25 15:29:04
阅读次数:
53