
数据结构
文章平均质量分 63
数据结构入门到入土,C语言版。
是洋洋a
男的
展开
-
数据结构-图结构的基本概念和术语
图G是由顶点的有穷非空集合和顶点之间边的集合组成,其形式化定义为 G = (V,E)其中G是一个图,V是图G中顶点的集合,E是图G中边的集合。若顶点A和B之间的边没有方向,则称这条边为无向边,用无序偶数对(A,B)来表示。若顶点A和B之间的边有方向,则称这条边为有向边,用有序偶数对<A,B>来表示。在有序偶数对<A,B>中,B称为弧头,A称为弧尾。如果图中的所有顶点之间的边都是无向边则称该图为无向图,否则称之为有向图,即有一条边是有向边,这个图就是有向图。在无向图中,如果任意两个顶点之间都存在原创 2023-10-09 21:15:59 · 118 阅读 · 0 评论 -
数据结构-邻接矩阵创建算法
【代码】数据结构-邻接矩阵创建算法。原创 2023-10-10 22:22:13 · 258 阅读 · 0 评论 -
数据结构-邻接表建立无向图
【代码】数据结构-邻接表建立无向图。原创 2023-10-11 14:25:47 · 2185 阅读 · 1 评论 -
数据结构-邻接表深度优先搜索(C语言版)
【代码】数据结构-邻接表广度优先和深度优先搜索。原创 2023-10-13 14:38:32 · 195 阅读 · 0 评论 -
数据结构-邻接表广度优先搜索(C语言版)
而对于广度优先搜索,我们需要一个队列来辅助我们进行广度优先搜索(先进先出)。同时我们还需要一个visit数组来判断某个顶点是否已经被搜索过了。对于广度优先搜索,我们先搜索a,再搜索abcd,最后搜索ef。对于一个有向图无向图,我们下面介绍第二种遍历方式。广度优先搜索,即优先对同一层的顶点进行遍历。该例子,我们有六个顶点, 十条边。原创 2023-11-04 21:11:28 · 1021 阅读 · 0 评论 -
数据结构-Prim算法构造无向图的最小生成树
无向图如果是一个网,那么它的所有的生成树中必有一颗生成树的边的权值之和是最小的,我们称这颗权值和最小的树为:“最小生成树”(MST)。其中,一棵树的代价就是树中所有权值之和。而在现实中,最小生成树的概念可以用来解决很多实际问题,例如,在n个城市之间建立交通网,那么哪一条路径是最短的呢?就可以用最小生成树来解决。原创 2023-11-07 20:25:54 · 1068 阅读 · 0 评论 -
数据结构-拓扑排序
printf("输出序列为一个拓扑有序序列.\n");printf("此有向图有回路\n");原创 2023-10-23 19:57:42 · 335 阅读 · 0 评论 -
数据结构-求关键路径和关键活动
【代码】数据结构-求关键路径和关键活动。原创 2023-10-26 22:20:51 · 1303 阅读 · 0 评论 -
数据结构-Djikstra算法(C语言版)
【代码】数据结构-Djikstra算法(C语言版)原创 2023-11-03 23:09:26 · 1231 阅读 · 0 评论 -
数据结构-图的课后习题(2)
【代码】数据结构-图的课后习题(2)原创 2023-11-10 21:20:10 · 694 阅读 · 1 评论 -
数据结构-静态查找、二分查找、分块查找
在静态查找表中,我们只允许下面两件事:1.在查找表中查找某个记录是否在表中2.查找表中记录的各个属性。原创 2023-11-12 15:32:41 · 771 阅读 · 0 评论 -
数据结构-二叉排序树(建立、查找、修改)
二叉排序树是动态查找表的一种,也是常用的表示方法。其中,它具有如下性质:1.若它的左子树非空,则其左子树的所有节点的关键值都小于根节点的关键值。2.若它的右子树非空,则其右子树的所有节点的关键值都大于根结点的关键值。3.它的左右子树也分别都是二叉排序树。PS:对二叉排序树进行中序遍历,得到的序列,总会是一个升序的数列。我们使用C语言来建立。建立二叉排序树的代码如下:二叉排序树的插入查找二叉排序树指定节点的双亲原创 2023-11-13 21:10:23 · 4292 阅读 · 0 评论 -
数据结构-哈希表(C语言)
哈希表就是:哈希表又称:“”、“”、“原创 2023-11-17 22:14:08 · 1066 阅读 · 0 评论 -
数据结构-插入排序
因为我们是用的是C语言来实现算法,因此我们需要创建一个结构体,用来存放初始数据。原创 2023-11-20 21:47:23 · 635 阅读 · 0 评论 -
数据结构-交换排序(冒泡、快速)
先将第一个记录与第二个记录比较,将较大的记录放到第二个位置上,之后再将第二个记录与第三个记录比较,将较大的记录放到第三个位置上,如此类推,知道比较完最后一个位置,此时注意到最后一个位置是整个记录表中最大的记录了。随后我们进行第二趟比较,但是此时只需要比较到倒数第二个位置即可,此时次大的记录被放在了倒数第二个位置,直到比较完成。注意到,较大的记录被放在了后面,娇小的记录被放在了前面,这跟水中冒泡一样,较重的物体下沉,而水泡上浮。故被称作:“冒泡法”。原创 2023-11-28 16:41:50 · 698 阅读 · 0 评论 -
数据结构-选择排序(简单选择、堆)
非常基础的算法,假设有N个数据,比较N-1轮,每轮选出当前剩余数据的最大(最小)放到数据的开头,之后重复即可获得答案。原创 2023-11-29 17:47:21 · 934 阅读 · 0 评论 -
数据结构-归并排序
归并是指将两个或两个以上的有序表合并成一个有序表。假设有N个记录,则可以看成是N个有序的子序列,每个子序列的长度为1,然后两两归并得到[n/2]个(上取整)长度为2的子序列,然后再两两归并,最终得到一个长度为N的序列,就是所求序列。这种归并方法也被称为二路归并排序。原创 2023-12-02 16:43:25 · 982 阅读 · 0 评论 -
数据结构-基数排序
基数排序其实就是依靠多位关键字进行排序,现在我们有一个数据为,那么“101”就是一个关键字,分别为:“此时我们就可以按照三位关键字进行排序,一般而言,排序有两:“”、“还是对于上面的数据101,它是一个三位关键字,分别为:“1”、“0”、“1”,对于每一位关键字,它的取值范围为:“”,共十种,我们把这些可能性称为:“”(简写为),因此可以说,101基数为10(r=10)。原创 2023-12-03 15:54:02 · 923 阅读 · 0 评论