上一页 1 2 3 4 5 6 7 8 ··· 10 下一页
摘要: 一、左倾堆的介绍 左倾堆(leftist tree 或 leftist heap),又被成为左偏树、左偏堆,最左堆等。它和二叉堆一样,都是优先队列实现方式。当优先队列中涉及到"对两个优先队列进行合并"的问题时,二叉堆的效率就无法令人满意了,而本文介绍的左倾堆,则可以很好地解决这类问题。 左倾堆的定义 阅读全文
posted @ 2018-10-08 21:37 抒抒说 阅读(1295) 评论(0) 推荐(0) 编辑
摘要: 二叉堆的介绍 二叉堆是完全二元树或者是近似完全二元树,按照数据的排列方式可以分为两种:最大堆和最小堆。最大堆:父结点的键值总是大于或等于任何一个子节点的键值;最小堆:父结点的键值总是小于或等于任何一个子节点的键值。示意图如下: 二叉堆一般都通过"数组"来实现。数组实现的二叉堆,父节点和子节点的位置存 阅读全文
posted @ 2018-10-08 20:22 抒抒说 阅读(1054) 评论(0) 推荐(0) 编辑
摘要: 哈夫曼树的介绍 Huffman Tree,中文名是哈夫曼树或霍夫曼树,它是最优二叉树。 定义:给定n个权值作为n个叶子结点,构造一棵二叉树,若树的带权路径长度达到最小,则这棵树被称为哈夫曼树。 这个定义里面涉及到了几个陌生的概念,下面就是一颗哈夫曼树,我们来看图解答。 (01) 路径和路径长度 定义 阅读全文
posted @ 2018-10-08 19:13 抒抒说 阅读(764) 评论(0) 推荐(0) 编辑
摘要: 红黑树介绍参考上一篇。 1. 基本定义 RBTNode是红黑树的节点类,而RBTree对应是红黑树的操作实现类。在RBTree中包含了根节点mRoot和红黑树的相关API。注意:(01) 在实现红黑树API的过程中,我重载了许多函数。重载的原因,一是因为有的API是内部接口,有的是外部接口;二是为了 阅读全文
posted @ 2018-10-08 18:54 抒抒说 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 红黑树介绍 R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。 红黑树的特性:(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(NIL)是黑色。 阅读全文
posted @ 2018-10-08 18:45 抒抒说 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 一、介绍 伸展树(Splay Tree)是一种二叉排序树,它能在O(log n)内完成插入、查找和删除操作。它由Daniel Sleator和Robert Tarjan创造。(01) 伸展树属于二叉查找树,即它具有和二叉查找树一样的性质:假设x为树中的任意一个结点,x节点包含关键字key,节点x的k 阅读全文
posted @ 2018-10-08 09:54 抒抒说 阅读(512) 评论(0) 推荐(0) 编辑
摘要: 一、概念 AVL树是根据它的发明者G.M. Adelson-Velsky和E.M. Landis命名的。它是最先发明的自平衡二叉查找树,也被称为高度平衡树。相比于"二叉查找树",它的特点是:AVL树中任何节点的两个子树的高度最大差别为1。 AVL树的查找、插入和删除在平均和最坏情况下都是O(logn 阅读全文
posted @ 2018-10-08 09:45 抒抒说 阅读(502) 评论(0) 推荐(0) 编辑
摘要: 1. 阅读全文
posted @ 2018-10-08 00:02 抒抒说 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 二叉查找树的c++实现: 1. 节点和二叉查找树的定义 1.1 二叉查找树节点 BSTNode是二叉查找树的节点,它包含二叉查找树的几个基本信息:(01) key -- 它是关键字,是用来对二叉查找树的节点进行排序的。(02) left -- 它指向当前节点的左孩子。(03) right -- 它指 阅读全文
posted @ 2018-10-07 23:56 抒抒说 阅读(986) 评论(0) 推荐(0) 编辑
摘要: 一、树的介绍 1. 树的定义 树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。 把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:(01) 每个节点有零个或多个子节点;(02) 没有父节点的节点称为根节点;(03) 每一个非根节 阅读全文
posted @ 2018-10-07 23:33 抒抒说 阅读(338) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 10 下一页