Heqianqian的博客

盛年不再有,一日难再晨,及时当勉励,岁月不待人.

数据结构 红黑树

一、红黑树的介绍先来看下算法导论对R-B Tree的介绍: 红黑树,一种二叉查找树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。红黑树,作为一棵二叉...

2017-09-06 10:26:07

阅读数 216

评论数 0

数据结构 栈以及Java代码实现

1. 栈栈是一种特殊的线性表,是操作受限的线性表 栈的定义和特点 定义:限定仅在表尾进行插入或删除操作的线性表,表尾—栈顶,表头—栈底,不含元素的空表称空栈 特点:先进后出(FILO)或后进先出(LIFO) 2. 顺序栈/** * Stack * 栈 * Created by heqian...

2017-07-14 23:42:39

阅读数 368

评论数 0

数据结构 队列以及Java代码实现

1. 队列队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。 队尾(rear)——允许插入的一端 队头(front)——允许删除的一端 队列特点:先进先出(F...

2017-07-14 23:39:34

阅读数 378

评论数 0

数据结构 线性表以及Java代码实现

1. 线性表线性表是最基本、最简单、也是最常用的一种数据结构。在线性表中数据元素之间的关系是线性,数据元素可以看成是排列在一条线上或一个环上。 线性表分为静态线性表和动态线性表,常见的有顺序表(静态的)、单向链表(动态的)和双向链表(动态的)。2. 顺序表/** * List * 线性表接口...

2017-07-14 23:34:58

阅读数 474

评论数 0

数据结构 哈希表的原理和代码实现

哈希法又称散列法、杂凑法以及关键字地址计算法等,相应的表称为哈希表。这种方法的基本思想是:首先在元素的关键字k和元素的存储位置p之间建立一个对应关系f,使得p=f(k),f称为哈希函数。创建哈希表时,把关键字为k的元素直接存入地址为f(k)的单元;以后当查找关键字为k的元素时,再利用哈希函数计算出...

2017-06-11 20:18:36

阅读数 2989

评论数 1

数据结构 跳表SkipList的原理和代码实现

跳表简介跳表是平衡树的一种替代的数据结构,但是和红黑树不相同的是,跳表对于树的平衡的实现是基于一种随机化的算法的,这样也就是说跳表的插入和删除的工作是比较简单的。我们知道,普通单链表查询一个元素的时间复杂度为O(n),即使该单链表是有序的,我们也不能通过2分的方式缩减时间复杂度。如上图,我们要查询...

2017-06-01 12:17:30

阅读数 493

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭