前面分析了HashMap的实现,我们知道其底层数据存储是一个hash表(数组+单向链表)。接下来我们看一下另一个LinkedHashMap,它是HashMap的一个子类,他在HashMap的基础上维持了一个双向链表(hash表+双向链表),在遍历的时候可以使用插入顺序(先进先出,类似于FIFO),或
分类:
其他好文 时间:
2016-01-29 00:23:03
阅读次数:
318
LinkedList是基于链表结构的一种List,在分析LinkedList源码前有必要对链表结构进行说明。 1.链表的概念 链表是由一系列非连续的节点组成的存储结构,简单分下类的话,链表又分为单向链表和双向链表,而单向/双向链表又可以分为循环链表和非循环链表,下面简单就这四种链表进行图解说明。 1
分类:
其他好文 时间:
2016-01-28 21:11:35
阅读次数:
338
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 1 /* 2 struct TreeNode { 3 int val; 4 struct TreeNode *left; 5 struct TreeNo...
分类:
其他好文 时间:
2016-01-25 16:42:10
阅读次数:
183
双向链表结构:定义一个如下结构体struct Node{ Object data; Node *next; Node *prev;};下面为list的具体实现:#include using namespace std;template class List{private: ...
分类:
其他好文 时间:
2016-01-20 20:38:37
阅读次数:
238
1 //双向链表list的使用 2 //高效插入删除,若只是尾部插入删除元素,优先考虑vector 3 //若仅于头尾两端增删元素,优先考虑deque 4 #include "stdafx.h" 5 #include 6 #include //使用list之前,必须包含头文件...
分类:
其他好文 时间:
2016-01-20 17:13:34
阅读次数:
124
题目:Sort a linked list inO(nlogn) time using constant space complexity.思路:nlogn的排序有快速排序、归并排序、堆排序。双向链表用快排比较适合,堆排序也可以用于链表,单向链表适合用归并排序。/** * Definition fo...
分类:
编程语言 时间:
2016-01-19 17:19:20
阅读次数:
180
#include #include #include //system(); 这个指令须要用到此头文件#include //toupper要用到#include //在内存管理时用到的头文件void main(){ int i; struct ListEntry{ int number; ...
分类:
其他好文 时间:
2016-01-03 17:08:52
阅读次数:
142
java.util.LinkedList 双向链表,两段效率较高,中间效率较低,一般只在链表的两段插入/删除数据。1.创建对象LinkedList list = new LinkedList();2.方法 add(数据) 添加数据 add(int index, 数据)在指定位置插入数据...
分类:
其他好文 时间:
2015-12-30 00:08:07
阅读次数:
170
////////////////////////////////////////////////////////////////////////
/////////////////////泛型编程之动态顺序表的模板/////////////////////////
////////////////////////////////////////////////////////////////////////
#include<iostream>
#include<..
分类:
其他好文 时间:
2015-12-29 19:46:37
阅读次数:
153
// 1.求二叉树中的节点个数// 2.求二叉树的深度// 3.前序遍历,中序遍历,后序遍历// 4.分层遍历二叉树(按层次从上往下,从左往右)// 5.将二叉查找树变为有序的双向链表// 6.求二叉树第K层的节点个数// 7.求二叉树中叶子节点的个数// 8.判断两棵二叉树是否结构相同// 9.判...
分类:
编程语言 时间:
2015-12-24 13:24:20
阅读次数:
260