随笔分类 - 数据结构
摘要:二项堆其实就是由多棵二项树构成的森林,每棵树的根结点构成一个单链表。其链表序列,按照每棵二项树的度从小到大排列。 依然分析它的五种基本操作: make_heap:建立一个空堆,或者把数组中元素转换成二叉堆。 insert:插入元素。 minimun:返回一个最小数。 extract_min:移除最小
阅读全文
摘要:二叉堆可以被看作是一个数组,也可以简单的看作是一个近似的完全二叉树,二叉堆有最大堆和最小堆,分别具有堆的性质:最大堆的某个结点的值最多与其父结点一样大,最小堆则是某个结点的值最多与其父结点一样小。所以最大堆中最大的结点永远是根结点,最小堆中最小的结点永远是根节点。 既然二叉堆是一种数据结构,就有其支
阅读全文
摘要:树有通常三种遍历方法:前序遍历,中序遍历,后序遍历,还有一种层序遍历。如果只单单知道其中一种遍历方法,是无法确定一颗树的,但是如果有两种遍历方法能否确定一颗树呢?这里不是二叉树,只是简单的树,也就是当只有一个儿子的时候不严格区分是左儿子还是右儿子,统一当作是第一个儿子。 对于二叉树来说,如果确定了中
阅读全文
摘要:简介 在平时的计算中,常常会遇到集合划分的问题,例如一个集合S={a1,a2,a3,a4},按照一定规则我们可以划分为S1={a1,a2},S2={a3},s3={a4}。但是在划分好集合后,又该如何快速确认任意两个元素之间的关系呢。由此引出并查集。 并查集简介 并查集最关键的表现就是一个集合中的每
阅读全文