
数据结构
文章平均质量分 80
Diehard_Yin
New blogs contents are posted here: https://medium.com/@lisulimowicz
展开
-
二叉搜索树--进阶篇之平衡二叉搜索树
第四步:旋转 对于一个平衡的节点,由于任意节点最多有两个儿子,因此高度不平衡时,此节点的两颗子树的高度差2.容易看出,这种不平衡出现在下面四种情况: 1、6节点的左子树3节点高度比右子树7节点大2,左子树3节点的左子树1节点高度大于右子树4节点,这种情况成为左左。 2、6节点的左子树2节点高度比右子树7节点大2,左子树2节点的左子树1节点高度小于右子树4节点,原创 2014-09-21 01:04:46 · 1002 阅读 · 0 评论 -
跳跃表以及C++实现
首先为了方便,我介绍的大概采用跳跃链表简介 二叉树是一种常见的数据结构。它支持包括查找、插入、删除等一系列操作。但它有一个致命的弱点,就是当数据的随机性不够时,会导致其树形结构的不平衡,从而直接影响算法的效率。 跳跃链表(Skip List)是1987年才诞生的一种崭新的数据结构,它在进行查找、插入、删除等操作时的期望时间原创 2014-09-24 00:32:21 · 13612 阅读 · 4 评论 -
哈希表初篇
一、哈希表 哈希表又称散列表。哈希表存储的基本思想是:以数据表中的每个记录的关键字k为自变量,通过一种函数H(k)计算出函数值。把这个值解释为一块连续存储空间(即数组空间)的单元地址(即下标),将该记录存储到这个单元中。在此称该函数H为哈希函数或散列函数。按这种方法建立的表称为哈希表或散列表。 我们知道:哈希表是一个固定大小的数组,数组的每个元素是一个链表(单向或双原创 2014-09-11 18:54:43 · 1421 阅读 · 0 评论 -
堆排序及C++实现
#include const int MAXN = 11111;int n, a[MAXN], ans = 0;//以下两个是自定义校验函数,mincmp是小根堆所需要的,而maxcmp就是大根堆所需要的了,inline bool mincmp(const int &x, const int &y){ return x < y; }inline bool maxcmp(co原创 2014-09-05 15:08:44 · 758 阅读 · 0 评论 -
实现循环单链表
#ifndef GW_CHOOSE_HPP_#define GW_CHOOSE_HPP_#include #include #include "ace/Basic_Types.h"#include "ace/Singleton.h"#include "ace/Null_Mutex.h"#include "ace/Guard_T.h"#include "ace/T原创 2014-09-02 17:17:07 · 754 阅读 · 0 评论 -
二叉搜索树--基础篇
二叉搜索树Binary Search Tree(BSTs)又名二叉排序树,二叉查找树。而能够自平衡的叫平衡搜索树,包括AVL trees, 2-3 trees, 2-3-4 trees, B-trees, Red-Black Trees红黑树,skip lists跳跃表。 在二叉搜索树的基础上,又有最优二叉搜索树。一、二叉搜索树的定义 二叉搜索树或者是一棵空树,或者是具有下列性原创 2014-09-20 00:28:52 · 951 阅读 · 0 评论