数据结构
wjszfq
天道酬勤
展开
-
数据结构之并查集
并查集算法:首先我们要明白什么是并查集算法,百度上面的定义是:并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际国内赛题中,其特点是看似并不复杂,但数据量极大,若用正常的数据结构来描述的话,往往在空间上过大,计算机无法承受;即使在空间...原创 2018-05-27 15:30:20 · 673 阅读 · 0 评论 -
图之深搜与广搜
无向带权图(邻接表)完成void BFS(Graph g,int k)函数,该函数从第k个点开始广度优先遍历图g,遍历过程中把访问过的顶点的visited设置为1(初始为0)。请注意,在测试代码中已经完成int locateVertex(Graph g, VertexType v);函数(在图g中查找顶点v的序号,不存在返回-1),你可以直接调用。我们这里怎么实现图的深搜:void DFS(Gra...原创 2018-05-24 18:47:13 · 1009 阅读 · 0 评论 -
堆的判定
问题描述:一棵完全二叉树,如果其中的任意一棵子树的父亲节点的值都不小于它的孩子节点的值,我们称之为大顶堆; 相反,一棵完全二叉树,如果其中任意一棵子树的父亲节点的值都不大于它的孩子节点的值,我们称之为小顶堆。 对于一棵给定的二叉树,判断它是否是一个大顶堆,或者是一个小顶堆。 不考虑空树情况,树的结点至少有2个。 注意:输入只保证是二叉树,但不保证一定是一棵完全二叉树。输入:一棵完全二叉树,如果...原创 2018-05-29 21:10:57 · 3246 阅读 · 0 评论 -
数据结构之生成最小树
这里主要讲了两个算法。首先说明下,本文讲到的两个算法都是和连接矩阵和连接表没有关系的,因为每个算法开始的时候,都会有一个初始化代码,经过初始化后,最后都会变成统一的算法语句。我们这里会介绍两种算法,第一种算法,Prim算法。这个算法,内容就是加点法,可以理解为在U集合周围找到权值最小的边的点,添加到U集合上,使得最后所有的点都在U集合上。算法思想:假设N=(V, E)是连通网,TE是N上最小生成树...原创 2018-06-01 01:50:24 · 1233 阅读 · 0 评论 -
python 广搜
前端时间学了数据结构中的深搜与广搜。是用C语言实现的。那就像想能不能用python实现图的广搜。为什么不考虑深搜,因为我知道的深搜都是用递归的形式去实现的,对内存空间浪费极大。而且python中似乎没有指针的概念。不太好实现深搜。如果要实现深搜就一定要指定深搜的层数,因此就来看广搜是如何实现的,在python中。(关于C语言实现深搜与广搜是这篇文章 https://blog.csdn.net/q...原创 2018-07-19 17:34:25 · 982 阅读 · 0 评论