本解析源码来自JDK1.7
LinkedList许多方法是为了适配其实现的接口,本质上都是双向链表的操作LinkedList概要
基于双向链表,主要实现了List和Deque接口,Deque接口继承自Queue,所以LinkedList同时实现了Queue接口
由于其基于双向链表,操作需要操作连接指针数数较多,所以线性操作系数比ArrayList较大
插入删除快,随机访问慢
线程不安全,修改列表结...
分类:
其他好文 时间:
2016-05-18 18:23:00
阅读次数:
172
相较于vector的连续线性空间,list就显得复杂许多,它的好处是每次插入或删除一个元素,就配置或释放一个元素空间。因此,list对于空间的运用有绝对的精准,一点不浪费。Vector的插入操作可能造成内存的重新配置,但是List不会。
List不再能够像vector一样以普通指针作为迭代器,因为其节点不保证在存储空间在连续存在。由于list是一个双向链表,迭代器必须具有前移、...
分类:
其他好文 时间:
2016-05-18 18:03:21
阅读次数:
266
STL是英文是Standard Template Library的缩写即标准模板库。STL广义上分为容器(container)、迭代器(iterator)、算法(algorithm). 1.容器 (1)向量(vector) 连续存储的元素<vector> (2)列表(list) 由节点组成的双向链表 ...
分类:
其他好文 时间:
2016-05-16 01:45:34
阅读次数:
222
include/linux/list.h 双向链表--双指针 双向链表--单指针 ...
分类:
系统相关 时间:
2016-05-15 01:53:23
阅读次数:
248
二叉搜索树与双向链表
参与人数:2316时间限制:1秒空间限制:32768K 算法知识视频讲解
题目描述
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
// 25.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
struct TreeNode {...
分类:
其他好文 时间:
2016-05-13 01:51:52
阅读次数:
142
List(双向链表)无需指定预先分配内存大小就可以动态扩展,原因是存储在不连续的内存空间,由指针将其链接起来。因为是链表所以随机访问的性能不好,但是在任何位置插入删除的性能比vector好(链表的特性)特点:
存储地址不连续,动态扩展性能好
在任何位置插入删除性能好
不支持随机访问
加粗的和vector一样
assign()
back()
clear()
empty()
end()
er...
分类:
编程语言 时间:
2016-05-13 00:21:03
阅读次数:
134
题意:给你一串合法的括号和当前光标的位置和一些操作,问操作完之后的串是怎么样的
思路:模拟一个双向链表的操作,首先先预处理出配对的括号组,然后模拟即可
#include
using namespace std;
const int maxn = 1e6;
struct Node
{
int l,r;
}nodes[maxn];
char s1[maxn],s2[maxn];
int ...
分类:
其他好文 时间:
2016-05-12 23:00:03
阅读次数:
185
1.1
基本数据结构
1.
数组
2.
链表,双向链表
3.
队列,单调队列,双端队列
4.
栈,单调栈
1.2
中级数据结构
1.
堆
2.
并查集与带权并查集
3. hash
表
自然溢出
双hash
1.3
高级数据结构
1.
树状数组
2.
线段树,线段树合并
3.
平衡树
Treap
随...
分类:
编程语言 时间:
2016-05-12 19:18:55
阅读次数:
371
//双向链表,将头结点和尾结点链接起来,就构成了双向循环链表
//双向循环链表是将头结点的前驱指针指向了尾结点,同时将尾结点的后劲指针指向了头结点.
//空表,头结点的前驱和后继指针均指向了自己,这也是判断双向循环链表是否为空的条件,
//双向循环链表具有对称性
//缺点,是要付出空间代价的双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从...
分类:
其他好文 时间:
2016-05-12 18:27:21
阅读次数:
276