
数据结构
文章平均质量分 90
数据结构
妖精七七_
一以贯之
展开
-
【五】【数据结构】图dijkstra最短路径 邻接矩阵(无项、有权)代码简单实现深度解析
一个顶点到达其他顶点的直接距离的最小值就是最短路径。例如,A顶点可以到达BDEF四个顶点,直接距离分别是AB2,AD4,AE3,AF5,这些距离的最短直接距离是AB2,则AB2就是最短路径。因为如果你想从A到达其他顶点再从其他顶点到达B,第一步的距离一定要比AB这个直接距离大,所以AB就是最短路径。原创 2023-12-05 12:34:03 · 1564 阅读 · 6 评论 -
【三】【数据结构】图的邻接矩阵简单实现
C语言,图,邻接矩阵,代码的简单实现原创 2023-12-03 16:03:12 · 838 阅读 · 1 评论 -
【八】【数据结构】邻接表,图,代码简单实现,深度解析
我们今天学习了邻接表存储图信息,需要三个结构体,第一个是图的结构体,第二个是顶点结构体,第三个是表结构体(也是表示顶点)。接着编写顶点结构体,成员信息要包括该顶点的信息data,也就是顶点的表示信息,我们这里用数组对应下标表示该信息,还有一个指向表结点的指针,也就是邻接表,用来表示该顶点的邻接表,达到遍历某一顶点中邻接表的所有元素的效果。从图结构体开始编写,成员信息要包括图中顶点的个数,边的个数,图的类型,以及一个数组vex,存储每一个顶点。可以验证,用邻接表表示出来的图是没有问题的。原创 2023-12-09 16:36:12 · 751 阅读 · 1 评论 -
【一】【数据结构】Huffman编码解码简单实现
Huffman树编码解码简单实现,C语言,结构体。原创 2023-12-01 15:01:18 · 1626 阅读 · 3 评论 -
【六】【数据结构】Prim算法,最小生成树,最小生成树权值和,最小生成树路径,代码的简单实现,深度解析
创建judgment数组,所有元素置0,judgment[i]=0表示顶点i在非树集合中,judgment[i]=1表示顶点i在树集合中。创建path数组,所有元素置-1,path[i]=n表示顶点i的前驱顶点是n。memset是计算机中C/语言初始化函数。作用是将某一块内存中的内容全部设置为指定的值, 这个函数通常为新申请的内存做初始化工作。函数解释:将s中当前位置后面的n个字节 用 ch 替换并返回 s。原创 2023-12-07 23:17:01 · 1500 阅读 · 8 评论 -
【二】【数据结构】顺序表(静态数组+动态数组)简单实现
C语言,数据结构,顺序表的静态、动态代码深度解析原创 2023-12-02 22:53:55 · 1275 阅读 · 1 评论 -
【四】【数据结构】图之邻接矩阵(无向、有权)代码简单实现
假设一个图的顶点数是V,则用大小的二维数组来表示这个图边的信息,例如矩阵arcs[i][j],数值为1表示从下标为i的顶点到下标为j的顶点有边,数值为0表示从下标为i的顶点到下标为j的顶点没有边。矩阵的对角线上数值默认是0,因为没有自己顶点到自己顶点的边。原创 2023-12-04 22:23:06 · 2228 阅读 · 1 评论 -
【七】【数据结构】kruskal算法,求最小生成树,代码简单实现,深度解析
edges数组按照边的权值,升序存储数据,每一次添加数据,把数据插入到指定位置,从最后一个元素开始遍历,如果该权值大于插入元素的权值,就往后赋值,挪一个位置,依次循环。依次遍历edges也就是权值最小的边,然后判断这条边的两个顶点是否在同一树集,如果不在同一树集,连接这条边构成的还是树,这条边就可以接受,依次循环,一直到edges数组变量结束。首先我们引入了集合的概念,gather[i]=x表示顶点i在集合x中,依次遍历图中所有的边,依次加入到edges数组中,根据权值 进行升序排序,模拟优先队列。原创 2023-12-08 20:06:52 · 1485 阅读 · 6 评论 -
【十】【数据结构】有向有权图的最大流问题代码,简单实现,深度解析
注意,该代码并不能准确求得最大流,有的时候得到的最大流会比真实的最大流小,因为该代码找到一条路径就会把水送过去,而不能考虑这样对其他管道的影响,虽然不能完美解决最大流问题,但是还是很有利于我们对于最大流问题更深层次的理解。原创 2023-12-14 00:37:38 · 1019 阅读 · 4 评论 -
【九】【数据结构】深度优先和广度优先遍历,代码简单实现,深度解析
首先引入集合的概念,定义visit数组,visit[i]=x表示顶点i在x集合中,此代码规定的集合为0或者1,也就是x的取值只能为0或者1,0所代表的集合是顶点还没有被访问过,而1所代表的集合是顶点已经被访问过。根据集合思想,定义visit数组,以及队列queue,队列的大小定义为size大小,可以存储比图顶点数还多一个的数据,所以这个队列的队尾rear一定不会越界,rear和front直接++不用构造循环队列。首先遍历vex顶点,打印该顶点,并把该顶点归于1集合中,1集合是被访问过的集合。原创 2023-12-09 22:35:24 · 1673 阅读 · 2 评论