
数据结构
文章平均质量分 88
君慕蓉
生活就像一条假装平静的小河
展开
-
并查集
一、什么是并查集概念:并查集由一个整型数组pre[ ]和两个函数find( )、join( )构成。数组pre[ ]记录了每个点的前导点是什么,函数find(x)用于查找,函数join(x,y)用于合并。作用:并查集的主要作用是求连通分支数(如果一个图中所有点都存在可达关系(直接或间接相连),则此图的连通分支数为1;如果此图有两大子图各自全部可达,则此图的连通分支数为2……)...原创 2021-01-13 11:43:00 · 760 阅读 · 2 评论 -
C++关键字 ---- static
昨天看书看到了这一部分,感觉书上总结的很好。把我之前的认知成功的串联了一遍,也填补了很多不曾注意到的空白。以下总结内容参考《王道程序员求职宝典》,很不错的一本书,内容比较全面,还有搭配的真题训练很不多,认真看一遍受益很大。原创 2020-03-14 13:58:17 · 216 阅读 · 0 评论 -
C++内存和数组
C++基础全面复习原创 2020-03-09 16:43:36 · 323 阅读 · 0 评论 -
【LeetCode】螺旋矩阵
给定一个包含?m x n?个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例1:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例2:输入:[[1, 2, 3, 4],[5, 6, 7, 8],[9,10,11,12]]输出: [1,2,3,4,8,12...原创 2020-02-10 21:40:56 · 234 阅读 · 0 评论 -
数据结构复习 ---- 排序(未完待续)
假设含有n个记录的序列为{r~1~,r~2~,......,r~n~},其相应的关键字分别为{k~1~,k~2~,......,k~n~},需确定1,2,......,n的一种排列p~1~,p~2~,......p~n~,使其相应的关键字分别满足k~p1~<=k~p2~<=......<=k~pn~非递减(或非递增)关系,即使得序列称为一个按关键字有序序列{r~p1~,r~p2~,......,r~pn~},这样的操作就称为排序。原创 2020-02-10 21:33:35 · 261 阅读 · 0 评论 -
数据结构复习 ---- 最小生成树之克鲁斯卡尔(Kruskal)算法
假设N=(V,{E})是连通网,则令最小生成树的初始状态为只有n个顶点而无边的非连通图T={V,{}},图中每个顶点自成一个连通分量。在E中选择代价最小的边,若该边依附的顶点落在T中不同的连通分量上,则将此边加入到T中,否则舍去此边而选择下一条代价最小的边。依次类推,直至T中所有顶点都在同一连通分量上为止。原创 2020-02-05 15:19:49 · 688 阅读 · 2 评论 -
数据结构复习 ---- 最小生成树之普里姆(Prim)算法
Prim算法定义:假设N=(V,{E})是连通网,TE是N上最小生成树中边的集合;算法从U={u~0~}(u~0~∈V),TE={}开始;重复执行下述操作:在所有u∈U,v∈V-U的边(u,v)∈E中找一条代价最小的边(u~0~,v~0~)并入集合TE,同时v~0~并入U,直到U=V为止;此时TE中必有n-1条边,则T=(V,{TE})为N的最小生成树;该算法的时间复杂度为O(n^2^);原创 2020-02-03 15:52:20 · 811 阅读 · 0 评论 -
数据结构复习 ---- 广度优先遍历(BFS)
广度优先遍历(Breadth_First_Search),又称为广度优先搜索,简称BFS;如果说深度优先遍历类似树的前序遍历,那么广度优先遍历就类似于树的层序遍历;不过相对于深度优先遍历,广度优先遍历借助了一个队列来实现遍历的去重,看似复杂一些,其实也很好理解原创 2020-02-02 15:10:41 · 2003 阅读 · 0 评论 -
数据结构复习 ---- 深度优先遍历(DFS)
其实深度遍历的思路就是,利用图的顶点之间的邻接关系来遍历,为了防止重复遍历,给访问过的顶点打上tag;如果你对邻接表和邻接矩阵理解的比较透彻的话,深度优先遍历是很好理解的;针对邻接矩阵和邻接表两种存储方式的深度优先遍历来说,n个顶点,e个边的图,时间复杂度分别为O(n^2^)和O(n + e);所以如何做选择存储结构还是需要根据实际情况来看;;原创 2020-02-01 22:18:25 · 4054 阅读 · 0 评论 -
数据结构复习 ---- 邻接表
邻接表是一种数组与链表相结合的存储方式;用一个一维数组取存放图的顶点,记做顶点表;该数组中的每一个顶点的所有邻接点构成一个链表,无向图称该链表为该顶点的边表,有向图称该链表为该顶点作为弧尾的出边表;原创 2020-01-31 18:38:58 · 6460 阅读 · 1 评论 -
数据结构复习 ---- 邻接矩阵
这里要总结的邻接矩阵时关于图的邻接矩阵;图的邻接矩阵(Adjacency Matrix)存储方式是用两个数组来表示图;一个一维数组存储图中顶点信息,一个二维数组(称为邻接矩阵)存储图中的边或弧的信息;原创 2020-01-31 17:08:07 · 5453 阅读 · 0 评论 -
数据结构复习 ---- 二叉树(一)
二叉树(Binary Tree)是n(n >= 0)个节点的有限集合,该集合或者空集(称为空二叉树),或者由一个根节点和两颗互不相交的、分别称为根节点的左子树和右子树的二叉树组成;原创 2020-01-28 22:03:55 · 528 阅读 · 0 评论 -
数据结构复习 ---- 栈和队列
其实栈和队列的链式存储方式就是链表的改型,操作其实和链表的基本操作没什么区别,无非就是插入和删除节点;当然栈和队列也有顺序存储结构,队列也还有循环队列等一些特殊结构,后面再做总结;这两种数据结构有其鲜明的结构特点,栈的先进后出,队列的先进先出,都能在特定的数据处理场景下大放光彩;这两种数据结构也相对比较简单,算是线性表的一种扩展结构;原创 2020-01-27 18:29:03 · 413 阅读 · 0 评论 -
数据结构复习 ---- 链表(一)
总结一些经验,对比链表这种链式存储结构和数组等一些顺序存储结构,其优势在于插入和删除比较方便,不影响其他的节点数据,但是也因为他不是一种连续的存储形式,在查找时需要遍历,所以选择使用哪种数据结构也要根据实际需要来权衡选择。没有最优的数据结构,只有最合适的数据结构。原创 2020-01-27 15:01:35 · 647 阅读 · 0 评论