SWUST OJ
题解
万事大吉CC
这个作者很懒,什么都没留下…
展开
-
715: 字典序问题
【代码】715: 字典序问题。原创 2024-10-16 13:54:45 · 459 阅读 · 0 评论 -
640: Binary search
【代码】640: Binary search。原创 2024-10-15 18:47:33 · 214 阅读 · 0 评论 -
480: Locker doors
【代码】480: Locker doors。原创 2024-10-15 17:04:43 · 154 阅读 · 0 评论 -
445: 选择问题
【代码】445: 选择问题。原创 2024-10-15 16:32:14 · 287 阅读 · 0 评论 -
5: Euclid‘s Game
题意分析:给定数列(A,B)(A>B),任取两数之差,若不含于数列(A,B)则添加得(A.B,C)重复任取两数之差且不重复得(A,B,C,...),求()最终含有多少个数。A偶B奇B赢,B偶A赢。原创 2024-10-15 12:58:19 · 317 阅读 · 0 评论 -
1105: 交换二叉树的孩子结点
【代码】1105: 交换二叉树的孩子结点。原创 2024-05-25 13:50:33 · 242 阅读 · 0 评论 -
1099: 希尔排序算法实现
希尔增量选定n/2,原创 2024-05-25 13:39:28 · 226 阅读 · 0 评论 -
1098: 堆的判断
堆是完全二叉树 用数组来存储。原创 2024-05-25 13:24:52 · 355 阅读 · 0 评论 -
1077: 平衡二叉树的判定
后序遍历过程中每次判断左右子树高度差和1的关系即可。原创 2024-05-24 20:46:00 · 504 阅读 · 0 评论 -
1076: 判断给定有向图是否存在回路
拓扑排序的思路是将入度为0的顶点不断加入到排序结果中,并将其邻接顶点的入度减1。通过不断重复这个过程,最终可以得到一个有序的顶点序列。拓扑排序是一种对有向无环图(DAG)进行排序的算法。它使用了一个队列来存储入度为0的顶点,并逐步将这些顶点出队并处理。拓扑排序算法的时间复杂度为O(V+E),其中V是顶点的数量,E是边的数量。拓扑排序算法需要遍历图中的每个顶点和边。直观的方法用邻接矩阵dfs,这是错误的代码。原创 2024-05-24 20:45:56 · 510 阅读 · 0 评论 -
1075: 求最小生成树(Prim算法)
总结起来,Prim算法的核心思想是从一个顶点开始,一步一步地选择与当前最小生成树相邻的且权值最小的边,直到覆盖所有的顶点,形成一个最小生成树。原创 2024-05-24 20:45:52 · 211 阅读 · 0 评论 -
1070: 邻接矩阵存储简单路径
【代码】1070: 邻接矩阵存储简单路径。原创 2024-05-13 12:40:44 · 388 阅读 · 0 评论 -
1069: 图的按录入顺序广度优先搜索
【代码】1069: 图的按录入顺序广度优先搜索。原创 2024-05-13 11:10:41 · 225 阅读 · 0 评论 -
1068: 图的按录入顺序深度优先搜索
【代码】1068: 图的按录入顺序深度优先搜索。原创 2024-05-13 10:48:57 · 508 阅读 · 0 评论 -
1067: 有向图的邻接表存储强连通判断
定理:有向图G是强连通图的充分必要条件是G中存在一条经过所有节点的回路。原创 2024-05-12 18:09:41 · 265 阅读 · 0 评论 -
1065: 无向图的连通分量计算
2.遍历节点表dfs标记,每次得到一个连通分量。1.设节点表vis[]原创 2024-05-12 15:56:19 · 236 阅读 · 0 评论 -
1062: 有向图的边存在判断
【代码】1062: 有向图的边存在判断。原创 2024-05-12 14:20:48 · 179 阅读 · 0 评论 -
1060: 无向图的最大度计算
【代码】1060: 无向图的最大度计算。原创 2024-05-12 14:15:22 · 231 阅读 · 0 评论 -
1057: 有向图的出度计算
【代码】1057: 有向图的出度计算。原创 2024-05-12 13:39:55 · 324 阅读 · 0 评论 -
1056: 邻接表到邻接矩阵
【代码】1056: 邻接表到邻接矩阵。原创 2024-05-12 00:05:26 · 194 阅读 · 0 评论 -
1055: 邻接矩阵到邻接表
【代码】1055: 邻接矩阵到邻接表。原创 2024-05-11 18:03:27 · 175 阅读 · 0 评论 -
1053: 输出利用先序遍历创建的二叉树中的指定结点的度
【代码】1053: 输出利用先序遍历创建的二叉树中的指定结点的度。原创 2024-05-11 17:27:26 · 222 阅读 · 0 评论 -
1016: 插入排序算法实现
【代码】1016: 插入排序算法实现。原创 2024-05-11 14:02:10 · 223 阅读 · 0 评论 -
1015: 堆排序算法
2.arr[0]到arr[n-2]进行最大堆调整。已知一次最大堆调整得到arr[0](堆顶)最小。最后一个非叶子节点就是最后一个节点的父节点。1.堆顶和堆底arr[n-1]交换。进行一次最小堆调整(如视频)3.重复至剩下最后一个元素。原创 2024-05-11 13:33:36 · 325 阅读 · 0 评论 -
1014: 交换排序算法的设计与实现——冒泡排序
【代码】1014: 交换排序算法的设计与实现——冒泡排序。原创 2024-05-10 17:19:38 · 143 阅读 · 0 评论 -
1013: 哈希表(开放定址法处理冲突)
需要注意的是,线性探测可能会导致哈希表的填装因子过高,从而影响性能。因此,当哈希表中的槽位被占用的比例达到一个阈值时,可以考虑进行扩容,重新哈希所有的元素,以保持哈希表的性能。线性探测是一种解决哈希冲突的方法,当发生哈希冲突时,它会依次往后查找空的槽位,直到找到一个空的槽位或者达到数组的末尾。用-1初始化表明该位置为空。原创 2024-05-10 17:14:01 · 436 阅读 · 0 评论 -
1012: 哈希表(链地址法处理冲突)
解法:这是原始的哈希表加上链式地址处理哈希冲突。原创 2024-05-10 16:28:45 · 195 阅读 · 0 评论 -
1011: 二叉排序树的实现和查找
根据这些性质,可以通过递归的方法来建立二叉排序树。原创 2024-05-09 23:58:32 · 254 阅读 · 0 评论 -
1010: 折半查找的实现
【代码】1010: 折半查找的实现。原创 2024-05-09 22:53:58 · 221 阅读 · 0 评论 -
987: 输出用先序遍历创建的二叉树是否为完全二叉树的判定结果
如果一个结点有左子树但是没有右子树,则这个结点之后的所有结点都必须是叶子结点。对于任意一个结点,如果它有右子树而没有左子树,则这棵树不是完全二叉树。如果满足以上条件,则这棵二叉树是完全二叉树;否则,不是完全二叉树。和这道题是一样的,在这基础上补二个判断即可。原创 2024-05-09 22:24:15 · 344 阅读 · 0 评论 -
986: 哈夫曼译码
解法:先把代码粘贴到编译器(vs)上,分享一个一键去除空白行的操作,ctrl+f调出查找窗口,输入查找(?<=\r\n)\r\n,选择正则表达式,替换就可以发现会去掉一百多行空白行。算法就是:遍历i给定01串,j每次从下标2*n-2开始回溯到0,若达到叶子节点也就是左右孩子为空,则打印ht[j]且重置j,否则继续遍历。要看 得到的哈夫曼树是什么样子。一下子就可以画出哈夫曼树出来。要看 得到的哈夫曼译码表。译码(以a0001举例)原创 2024-05-09 21:03:12 · 1188 阅读 · 0 评论 -
984: 利用二叉树中序及先序遍历确定该二叉树的后序序列
理论知识都清楚了,以先序数组第一个元素作为切割元素,先切中序数组,再根据中序数组来切先序数组(依据中序数组和先序数组的长度大小一样),一层一层的切割下去,每次先序数组第一个元素就是根节点。已知中序和后序构造二叉树也是一样,只是首元素变成了尾元素。ps:交题把日志(打印的测试数据)去掉。测试:in是中序,pre是先序。对叶节点可以做剪枝优化。原创 2024-05-09 17:21:31 · 435 阅读 · 0 评论 -
982: 输出利用二叉树存储的普通树的度
在二叉树中就是某根节点的右孩子+某根节点的右孩子的右孩子+。普通树的度,度就是节点儿子数的最大值。由题意,根据二叉树求对应的。关于树概念不理解的可以看看。原创 2024-04-23 18:17:06 · 578 阅读 · 0 评论 -
980: 输出利用先序遍历创建的二叉树的层次遍历序列
【代码】980: 输出利用先序遍历创建的二叉树的层次遍历序列。原创 2024-04-23 18:04:34 · 333 阅读 · 0 评论 -
981: 统计利用二叉树存储的森林中树的棵数
在数据结构中,森林(Forest)是一组互不相交的树的集合,而二叉树(Binary Tree)是每个节点最多只有两个子节点的树。下面介绍如何在森林和二叉树之间进行转换。需要注意的是,森林和二叉树之间的转换是一种概念上的转换,实际上不需要改变底层数据结构。转换只是为了更方便地理解和处理问题而进行的,并不会改变数据的本质。将普通树转换为二叉树可以使用多种方法,其中一种常用的方法是使用左孩子右兄弟表示法。蓝色的都是兄弟,对应二叉树右孩子节点(兄嘚的关系是右的右)红色的就是左孩子,对应二叉树左孩子节点(一个)原创 2024-04-23 17:53:32 · 571 阅读 · 0 评论 -
1231: 寻找出现次数最多的数
【代码】1231: 寻找出现次数最多的数。原创 2024-04-16 17:17:03 · 308 阅读 · 0 评论 -
1103: 删除顺序表中指定区间的数据
【代码】1103: 删除顺序表中指定区间的数据。原创 2024-04-16 16:52:16 · 248 阅读 · 0 评论 -
1102: 顺序表上数据的划分问题的实现
【代码】1102: 顺序表上数据的划分问题的实现。原创 2024-04-16 16:38:17 · 244 阅读 · 0 评论 -
1101: 顺序表中数据的循环移动
【代码】1101: 顺序表中数据的循环移动。原创 2024-04-16 16:25:15 · 251 阅读 · 0 评论 -
1046: 链栈基本操作的实现
解法:学习版看刚开始的文章。原创 2024-04-15 23:59:00 · 167 阅读 · 0 评论