
数据结构
Amumu_yy
这个作者很懒,什么都没留下…
展开
-
数据结构之二叉树
1、基本概念 二叉树,顾名思义,就是子节点最多只有两个的树。由于最多只有两个,可以区分左右,我们称子节点为左子女和右子女,次序不可颠倒。根据二叉树的结构,我们可以得到以下特性: 1. 第i层的节点个数最多为2^(i-1)(i>=1)个; 2. 深度为h的二叉树最多有2^h -1(h>=1)个节点,最少为h个; 3. 若叶节点的个数为n1,度数为2的节点个数为n2,则n1=n2+1;2、特殊结原创 2017-04-14 08:05:04 · 1183 阅读 · 0 评论 -
数据结构之二叉查找树
1、基本概念 二叉查找树,在二叉树的基础上加了以下限制条件:对于树中的任意节点,其键值大于左子树中的任意节点的键值,小于右子树中的任意节点的键值。根据此结构,我们可以得到对数级的查找和插入效率。同时,从根节点一直向左查找可得到最小值,一直向右查找就可得到最大值。2、查找操作 二叉查找树在查找元素时,2、插入操作 二叉查找树在插入节点时,原创 2017-04-15 08:13:04 · 320 阅读 · 0 评论 -
数据结构之tree
1、基本概念 tree是节点的集合。这个集合可以是空集;若不是空集,则有一个根节点和零个或多个非空子树,每个子树都被根节点使用一条有向边所连接。 由树的定义,我们可以知道,树是由节点和有向边组成的,根据树的结构,我们有以下衍生的定义: 1. 整棵树最上层的节点称为根节点(root); 2. 连接两个节点的称为有向边(edge); 3. 有向边的头称为父节点(parent),尾称为原创 2017-04-11 09:04:46 · 557 阅读 · 0 评论 -
数据结构之红黑树
1、基本概念 红黑树是一种平衡二叉查找树,不同于AVL树,红黑树必须满足一下几个规则: 1. 树中的节点不是为红色就是为黑色; 2. 根节点的颜色为黑色; 3. 若节点的颜色为红色,则其子节点必然为黑色; 4. 任意节点至NULL的路径上黑色节点的数目是相同的。 根据规则4,可知新增节点必须为红色;根据规则2和3,若节点为红色,则其父节点必然为黑色;根据规则3,若插入节点的父节点为红原创 2017-05-07 10:15:33 · 285 阅读 · 0 评论 -
数据结构之AVL树
1、基本概念 二叉查找树经过一段时间的插入和删除操作,很容易造成树的高度不平衡,从而达到O(n)的查找速度,这不是我们想要的。因而,我们在二叉查找树的基础上加上平衡条件,形成平衡二叉查找树,保证O(logn)的操作速度。AVL树就是一种平衡二叉查找树,平衡条件是对于树中的任意节点,其左右子树的高度相差不超过1。2、查找操作 AVL树的查找与二叉查找树的操作是一致的,直接复用。原创 2017-04-18 09:39:01 · 298 阅读 · 0 评论 -
数据结构之hashtable
1、基本概念 hashtable是一种存储成对的键值和实值元素的字典结构。不同于红黑树的对数级的平均时间消耗,hashtable提供常数级的时间消耗。2、散列函数 为了达到常数级的时间消耗,底层必须使用array这种连续空间的内存结构。想要存储元素,就需要将元素的键值映射成对应的索引值,实现这种功能的映射函数就称为散列函数(hash function)。散列函数的实现是很重要的原创 2017-05-23 09:30:33 · 3155 阅读 · 0 评论