Java LinkedList底层是基于双向链表来实现的,为了更好的理解其实现原理,自己对简单的链表结构做了Java实现,代码如下 class MyLinkedList{ private int size = 0; private Node head; private Node last; priv ...
分类:
其他好文 时间:
2017-12-16 13:14:36
阅读次数:
184
*数据结构*栈结构(先进后出,后进先出)特点:进栈的方式叫压栈出栈的方式叫弹栈*队列(先进先出)*数组(查询快,增删慢)*链表结构有很多链子将多个节点连接起来每一个节点(数据):数据域(值)和指针域对于列表来说都是从第一个元素对应的指针域依次进行查询(从头开始找..
分类:
编程语言 时间:
2017-11-16 18:37:01
阅读次数:
203
题目来自于leetcode,要求是将两个已经有序的链表拼接成一个有序的链表,链表结构如下: 示意图如下,一个长方形成为节点,一个链表至少有一个节点。 方法一:首先创建一个新的链表L,比较了L1和L2当前结点的Val,小的加入到L中,同时将节点向后移, 直到有一个链表为空。最后将另一个非空的链表添加到 ...
分类:
其他好文 时间:
2017-10-10 11:33:39
阅读次数:
107
list是一个链表结构,可以模拟栈,队列 lpush list中压入一个元素 模拟栈 lrange 取出list的中的元素(0 -1 表示从头取到尾) rpush list中压入一个元素 模拟队列 linsert 指定的list中间插入元素 ...
分类:
其他好文 时间:
2017-10-06 18:38:00
阅读次数:
104
相比链表结构,使用动态树结构能够更有效的添加、删除和搜索数据。搜索树可用作字典或优先级队列,而二叉搜索树是最基本的搜索树。 二叉搜索树满足如下排序性质:若其执行中序遍历,则会得到一个按升序排列的键值序列。通过指针将节点连接成一棵树,各节点内包含键值以及指向父节点、左子节点、右子节点指针。 1、插入 ...
分类:
其他好文 时间:
2017-09-25 20:53:16
阅读次数:
150
JavaAPI中所用的集合类,都是实现了Collection接口,他的一个类继承结构如下:Collection<--List<--Vector数组实现查询快、增删慢Collection<--List<--ArrayList数组实现查询快、增删慢Collection<--List<--LinkedList链表结构查询慢、增删快Collection<-..
分类:
编程语言 时间:
2017-09-22 10:04:15
阅读次数:
252
redis的链表是双向链表,该链表不带头结点,具体如下: 主要总结一下adlist.c和adlist.h里面的关键结构体和函数。 链表节点结构如下: 链表结构如下: 链表迭代器的结构如下: 里面涉及的函数中,增、删的比较简单,就是结构里面没有带头结点,所以需要单独判断一下头结点的特殊情况。另外对于尾 ...
分类:
其他好文 时间:
2017-09-16 23:09:32
阅读次数:
203
前面写了list下arrlist和linkedlist的区别也就没有下文了,抽空总结一下map下的一些类。 一、概述 首先说一下三个map的介绍(treemap比较特殊,暂时忽略) 1、hashtable:数组+单链表结构、线程安全(操作加锁)、无序、 2、hashmap:数组+单链表结构、线程不安 ...
分类:
编程语言 时间:
2017-09-11 21:25:53
阅读次数:
199
在Java的世界里,万物皆为对象,那么Map是一个接口!哈哈 举个例子: 其中User类 运行 得到输出 HashMap--hash 就是每个对象都拥有的一个方法, Map默认长度是16,通过key的hash值得到它所在的位置。如果值相同则放在之前值的后面,是一个链表结构 利用debug模式,选择“ ...
分类:
编程语言 时间:
2017-09-07 23:00:55
阅读次数:
252
list接口,可重复,有序的。list有arrayList,因为是数组结构,适合用在数据的查询,linkedList,因为是链表结构,适合用在增删操作。数组如果增删的话,需要后面的元素都往前或者往后移动,如果是在第一个元素做增删,后面的元素移动量就很大,效率不高。链表如果做查询,需要从第一个元素开始 ...
分类:
编程语言 时间:
2017-09-03 17:50:07
阅读次数:
163