- 博客(9)
- 收藏
- 关注
原创 数据结构(最小生成树)
1.prim算法和kruskai算法生成最小树中prim对应的是点,因此prim使用于稠密图的最小生成树运算;kruskal对应的是边,因此kruskal算法使用于稀疏图。2.prim的时间复杂度为,kruskal的时间复杂度为3.prim算法执行时由于其特性不会检查回路,但kruskal是对应边构造最小生成树,因此后者需要对构造的最小生成树检查回路,可引入并查集。图的内容比较深奥,循序渐进即可 本人所写代码有误但有参考意义,图示解决疑惑是我的一点特色。
2024-05-31 17:13:17
747
原创 数据结构(图)
图所对应的关系是多对多的关系,其没有顺序存储结构,可以使用数组(邻接矩阵)或二维数组(邻接表)存储图中结点和弧的信息。邻接矩阵是一种顺序存储方式,即:分别引入两个数组,一个用于存储图的顶点的信息称为顶点表;另一个用于存储顶点间的关系,称为邻接矩阵。1)设图有n(n>0)个顶点,则顶点表,邻接矩阵2)设图有n(n>0)个顶点,则图G所对应的邻接矩阵arcs是一个n阶方阵,矩阵中的元素定义如下:3)对于带权图,邻接矩阵的元素定义为相应顶点之间的边的权值,即注:∞可以用一个较大的数值代替。
2024-05-23 19:35:40
1095
1
原创 数据结构(线索二叉树和Huffman树)
Huffman树即最优树,是一类带权路径长度(两结点间路径上的分支数)最短的二叉树,由其产生的编码称为Huffman编码。1.二叉链表2.线索二叉树3.最优二叉树(Huffman树)代码能力有限,有些算法自己写了运行不出来也就没有展示,有幸看到的各位可以去别处补充一下代码知识。
2024-05-18 10:15:11
830
原创 数据结构(树和二叉树)
(1)二叉树是由个结点组成的有限集合,该树可以为空树,也可以由一个根结点和两棵互不相交的被称为左子树和右子树的二叉树组成。(2)二叉树的特征1)每个结点的度只可能是0,1,或者2.2)二叉树是有序的,即使某结点只有一棵子树也要区分是左子树函数右子树。3)满二叉树满二叉树只有度为0或者2的结点,且叶子结点只可能出现在最底层,编号是自上而下,从左到右。图示4)完全二叉树在满二叉树中从最后一个结点开始连续的去掉任意个结点即位一棵完全二叉树。
2024-05-13 15:32:51
1251
2
原创 数据结构(矩阵和广义表)
1.以上便是有关矩阵和广义表的大致内容了,其中我们需要注意并且要求掌握的是对称矩阵,三角矩阵以及对角矩阵求矩阵中任意元素的位置我们需要查找某元素在其中的位置即要知道该元素前面有多少个元素,以及后面有多个元素,将总的元素个数减去其前面的元素个数,或者后面的元素个数即可得到该位置,详细的公式对应查看各矩阵的压缩存储。2.广义表中其7条特征我们是需要记住的,有关广义表的题目大多数都是和这起跳特征是挂钩的,掌握了这七条特征应对此类题目并不是什么难事。代码部分需要长时间磨合,短期内感到困难不要紧。
2024-05-09 16:57:13
1237
1
原创 数据结构(栈与队列)
int top;}SeqStack;;注:栈中元素 = top - base,栈满top = Maxsize-1.入栈前top+1,出栈后top-1.1.栈和队列都是操作受限制的线性表,但不同的是栈是先进后出队列是先进先出。2.顺序栈和链栈的区别:a.顺序栈空间操作不灵活,可能会导致大量空间被浪费或者空间不够使用的情况,但链栈可以动态的设置自己想要的空间要插入的位置等。队列也是同理。3.队列的逻辑是队列的逻辑结构->队列的存储结构->队列的实现。
2024-05-02 12:37:01
29
2
原创 数据结构(线性表)
区别:1)顺序表是逻辑上相邻的元素物理位置也是相邻;链表是逻辑上相邻的数据元素,其物理位置一般不相邻,允许存储单元地址不连续2)顺序表是随机存取且空间不灵活,需要提前使用malloc申请,且不可更改,因此会造成溢出或者大量空间被浪费的情况;链表是顺序存取,空间灵活,可随时申请空间(要多少取多少)。3)顺序表插入元素是需要移动大量的元素最坏情况下可能要移动n-1次,链表插入删除时不需要移动元素,就地增删。
2024-04-29 12:17:54
1107
原创 数据结构(绪论)
对于数据结构的绪论章节。我们要了解什么是数据结构,以及数据结构的一些术语内容和基本的要素组成,包括数据的存储方式有哪几种等基础知识,着重掌握如何计算算法的时间复杂度。
2024-04-27 16:28:08
307
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人