随笔分类 - 数据结构
摘要:图的遍历算法 上一篇我们了解了图的基本概念、术语以及存储结构,还对邻接表结构进行了模拟实现。本篇我们来了解一下图的遍历,和树的遍历类似,从图的某一顶点出发访问图中其余顶点,并且使每一个顶点仅被访问一次,这一过程就叫做图的遍历(Traversing Graph)。如果只访问图的顶点而不关注边的信息,那
阅读全文
摘要:<!--done--> 图的基本概念 线性表中的元素是“一对一”的关系,树中的元素是“一对多”的关系,本章所述的图结构中的元素则是“多对多”的关系。图(Graph)是一种复杂的非线性结构,在图结构中,每个元素都可以有零个或多个前驱,也可以有零个或多个后继,也就是说,元素之间的关系是任意的。现实生活中
阅读全文
摘要:斐波那契堆的介绍 斐波那契堆(Fibonacci heap)是一种可合并堆,可用于实现合并优先队列。它比二项堆具有更好的平摊分析性能,它的合并操作的时间复杂度是O(1)。与二项堆一样,它也是由一组堆最小有序树组成,并且是一种可合并堆。与二项堆不同的是,斐波那契堆中的树不一定是二项树;而且二项堆中的树
阅读全文
摘要:二项树的介绍 二项树的定义 二项堆是二项树的集合。在了解二项堆之前,先对二项树进行介绍。 二项树是一种递归定义的有序树。它的递归定义如下:(01) 二项树B0只有一个结点;(02) 二项树Bk由两棵二项树B(k-1)组成的,其中一棵树是另一棵树根的最左孩子。如下图所示: 上图的B0、B1、B2、B3
阅读全文
摘要:原文:http://www.cnblogs.com/skywang12345/p/3638552.html 斜堆的介绍 斜堆(Skew heap)也叫自适应堆(self-adjusting heap),它是左倾堆的一个变种。和左倾堆一样,它通常也用于实现优先队列;作为一种自适应的左倾堆,它的合并操作
阅读全文
摘要:原文:http://www.cnblogs.com/skywang12345/p/3638384.html 左倾堆的介绍 左倾堆(leftist tree 或 leftist heap),又被成为左偏树、左偏堆,最左堆等。它和二叉堆一样,都是优先队列实现方式。当优先队列中涉及到"对两个优先队列进行合
阅读全文
摘要:原文:http://www.cnblogs.com/skywang12345/p/3610390.html 二叉堆的介绍 二叉堆是完全二元树或者是近似完全二元树,按照数据的排列方式可以分为两种:最大堆和最小堆。最大堆:父结点的键值总是大于或等于任何一个子节点的键值;最小堆:父结点的键值总是小于或等于
阅读全文
摘要:转自:http://www.cnblogs.com/skywang12345/p/3706833.html 哈夫曼树的介绍 Huffman Tree,中文名是哈夫曼树或霍夫曼树,它是最优二叉树。 定义:给定n个权值作为n个叶子结点,构造一棵二叉树,若树的带权路径长度达到最小,则这棵树被称为哈夫曼树。
阅读全文
摘要:转自 http://www.cnblogs.com/skywang12345/p/3624343.html 红黑树的介绍 红黑树(Red-Black Tree,简称R-B Tree),它一种特殊的二叉查找树。红黑树是特殊的二叉查找树,意味着它满足二叉查找树的特征:任意一个节点所包含的键值,大于等于左
阅读全文
摘要:转自 http://www.cnblogs.com/skywang12345/p/3245399.html R-B Tree简介 R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Bla
阅读全文
摘要:转自:http://www.cnblogs.com/skywang12345/p/3604286.html 伸展树的介绍 伸展树(Splay Tree)是特殊的二叉查找树。它的特殊是指,它除了本身是棵二叉查找树之外,它还具备一个特点: 当某个节点被访问时,伸展树会通过旋转使该节点成为树根。这样做的好
阅读全文
摘要:转自:http://www.cnblogs.com/skywang12345/p/3577479.html AVL树的介绍 AVL树是高度平衡的而二叉树。它的特点是:AVL树中任何节点的两个子树的高度最大差别为1。 上面的两张图片,左边的是AVL树,它的任何节点的两个子树的高度差别都<=1;而右边的
阅读全文
摘要:原文:http://www.cnblogs.com/skywang12345/p/3576328.html 概要 本章先对二叉树的相关理论知识进行介绍,然后给出C语言的详细实现。关于二叉树的学习,需要说明的是:它并不难,不仅不难,而且它非常简单。初次接触树的时候,我也觉得它似乎很难;而之所产生这种感
阅读全文
摘要:原文:http://www.cnblogs.com/skywang12345/p/3562279.html 队列的介绍 队列(Queue),是一种线性存储结构。它有以下几个特点:(01) 队列中数据是按照"先进先出(FIFO, First-In-First-Out)"方式进出队列的。(02) 队列只
阅读全文
摘要:原文:http://www.cnblogs.com/skywang12345/p/3562239.html 栈的介绍 栈(stack),是一种线性存储结构,它有以下几个特点:(01) 栈中数据是按照"后进先出(LIFO, Last In First Out)"方式进出栈的。(02) 向栈中添加/删除
阅读全文
摘要:原文:http://www.cnblogs.com/skywang12345/p/3561803.html 线性表是一种线性结构,它是具有相同类型的n(n≥0)个数据元素组成的有限序列。本章先介绍线性表的几个基本组成部分:数组、单向链表、双向链表。 数组 数组有上界和下界,数组的元素在上下界内是连续
阅读全文

浙公网安备 33010602011771号