03 2020 档案

摘要:创建一个队列,先将所有入度为0(不用依赖其他点)的点入队,然后while循环: 循环出队,如果该指向的点的入度减一,然后判断减一后入度是不是为零,如果是,则这个点入队。 每一次入队的时候计数cnt加一。当排序完(while退出)以后判断cnt的值是不是等于点的总数,若等于,说明可行(任务全都可以完成 阅读全文
posted @ 2020-03-31 22:54 幻想Elapse 阅读(480) 评论(0) 推荐(0) 编辑
摘要:题目中图片的例子,这个例子里面输出的路径并不是对称的。比如这里输出的路径为:1 2 6 4 3 5 3 4 7 8 7 4 6 2 1,首先1264顺利常走完,然后35,到5的时候没地方走了,回到递归上一层3,3也没地方走了,返回到上一层4,4这一层中继续for循环寻找没有到达过的点,发现7可以走, 阅读全文
posted @ 2020-03-30 21:33 幻想Elapse 阅读(383) 评论(0) 推荐(0) 编辑
摘要:欧拉回路: 1.所有顶点度为奇数 2.为连通图 1 #include<iostream> 2 #include<string> 3 #include <cstring> 4 using namespace std; 5 int g[1001][1001];//存顶点 6 int visited[10 阅读全文
posted @ 2020-03-29 21:25 幻想Elapse 阅读(256) 评论(0) 推荐(0) 编辑
摘要:先初步判断是否满足二叉搜索树和小顶堆(针对每一颗最小的子树),如果都满足,进一步判断整棵树是否满足。 1 #include <iostream> 2 #include <string> 3 #include <cstring> 4 using namespace std; 5 typedef str 阅读全文
posted @ 2020-03-29 09:59 幻想Elapse 阅读(347) 评论(0) 推荐(0) 编辑
摘要:主要思路: 1.定义结构体node,包含1)名字name(2)指向下级目录指针ctl(3)指向下级文件指针file(4)指向同级目录或文件指针next(取决于它本身是目录还是文件)。 定义一个全局的指针ptr,指向上一个处理完毕的结点,比如一开始在输入“a\b\c”的中,ptr一开始指向root,从 阅读全文
posted @ 2020-03-27 00:06 幻想Elapse 阅读(663) 评论(0) 推荐(0) 编辑
摘要:思路:先用顶点0建立最小生成树,此时生成树有0一个顶点,树到其余顶点的权则为0到各点的权,然后循环:找到lowcost[]的最小值,将其对应顶点纳入最小生成树。设为顶点a,然后判断a到其余各顶点的权是否小于lowcost[]中对应的值,如果小于,则更新lowcost[]的值(即此时最小生成树到其余顶 阅读全文
posted @ 2020-03-25 19:28 幻想Elapse 阅读(307) 评论(0) 推荐(0) 编辑
摘要:#include <iostream> #include <string> #include <cstring> #include <queue> #include <vector> using namespace std; priority_queue<int, vector<int>, grea 阅读全文
posted @ 2020-03-23 14:31 幻想Elapse 阅读(465) 评论(0) 推荐(0) 编辑
摘要:使用正常序列和镜像序列构造出的搜索树是一样的,所以insert函数用一个正常的即可。 镜像先序遍历函数和镜像后序遍历函数需要另外编写。 1 #include <iostream> 2 #include <string> 3 #include <cstring> 4 #include <cstdio> 阅读全文
posted @ 2020-03-23 11:17 幻想Elapse 阅读(351) 评论(0) 推荐(0) 编辑
摘要:参考链接:数据结构与算法题目集7-27——家谱处理 1 #include <iostream> 2 #include <string> 3 #include <cstring> 4 #include <cstdio> 5 #include <map> 6 7 using namespace std; 阅读全文
posted @ 2020-03-22 10:28 幻想Elapse 阅读(366) 评论(0) 推荐(0) 编辑
摘要:参考: 优先队列priority_queue 用法详解 7-26 Windows消息队列 (25分) 优先队列比较函数的三种写法 首先定义结构体node,用来存储消息的名字和优先级,而因为node之间不能直接进行比较,所以重载<使node之间能相互比较(不能对>进行重载因为标准库默认使用<来确定元素 阅读全文
posted @ 2020-03-12 18:20 幻想Elapse 阅读(292) 评论(0) 推荐(0) 编辑
摘要:参考 主要思路: 1.将每个学生视为树的一个结点,用一个数组存储每个结点的前驱结点,当只有一个单独的学生的时候,将前驱设为他本身。然后每行第一个学生a与这一行的其余学生b1、b2……bn分别作合并操作,即a所在的树与bn所在的树相比较,将深度小的那一棵树的根节点x前驱设为深度大的那一棵树的根节点y, 阅读全文
posted @ 2020-03-10 21:19 幻想Elapse 阅读(261) 评论(0) 推荐(0) 编辑
摘要:没有学过C++的STL,也没有用过map,基本上是把别人代码照抄一遍。 参考链接: 定义一个map: map<string, int> tree find()函数返回的是一个迭代器,如果没有要查找的结构,则指向end(),可以通过tree[name]来访问具体元素 if (tree.find(nam 阅读全文
posted @ 2020-03-08 16:31 幻想Elapse 阅读(313) 评论(0) 推荐(0) 编辑
摘要:参考博客链接 递归思想: 先序遍中的X节点,当它出现在中序遍历中时,以中序遍历中X为分界点,它的左边部分为X的左子树,右边部分为X的右子树,然后依次规则递归处理它的左右子树。 核心代码: 用两个数组分别存储前序、中序遍历结果。s1为前序遍历数组中要处理的树的下标起点,e1为终点。同理s2为中序遍历数 阅读全文
posted @ 2020-03-07 17:14 幻想Elapse 阅读(407) 评论(0) 推荐(0) 编辑
摘要:没注意看题,一开始把元素类型弄成char了,搞了好久都AC不了,换成int一次就AC了。 题意: 即用两个栈来模拟队列,使两个栈协作实现队列的功能。 思路: 1.第一个栈为输入栈,第二个栈为输出栈,输入栈比输出栈要小。 2.栈满条件:输入栈满了而输出栈不为空,说明栈满了,因为输出栈还有元素的话,输入 阅读全文
posted @ 2020-03-06 16:54 幻想Elapse 阅读(233) 评论(0) 推荐(0) 编辑
摘要:参考:https://blog.csdn.net/qq_36254699/article/details/78824351 前缀表达式求值方法: 先将表达式入栈a,将栈a元素逐个出栈,如果是数字,直接入栈b,如果是操作符x,则b出栈2次,用t1接收第一个数,t2接收第二个数,再将t2 x t1的计算 阅读全文
posted @ 2020-03-05 23:08 幻想Elapse 阅读(722) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://pintia.cn/problem-sets/15/problems/827 参考:https://blog.csdn.net/SiKongPop/article/details/77972879#comments(内附数个测试样例) 题意: 将输入中缀表达式转换为后缀表达 阅读全文
posted @ 2020-03-02 22:12 幻想Elapse 阅读(592) 评论(0) 推荐(0) 编辑
摘要:不知道题目说的尽可能高效的算法是啥,我就只按我会的来了,无语…… 有时候最后两个测试点会超时,再提交一次又能AC了。 1 #include <iostream> 2 #include <string> 3 #include <cstring> 4 using namespace std; 5 6 s 阅读全文
posted @ 2020-03-01 16:29 幻想Elapse 阅读(549) 评论(0) 推荐(0) 编辑
摘要:挺简单的用队列求解的一题,难度不大。 输出格式要注意。 1 #include <iostream> 2 #include <string> 3 #include <cstring> 4 using namespace std; 5 6 class queue_ 7 { 8 public: 9 que 阅读全文
posted @ 2020-03-01 14:41 幻想Elapse 阅读(335) 评论(0) 推荐(0) 编辑
摘要:参考: https://blog.csdn.net/computerme/article/details/18080511的和https://zhuanlan.zhihu.com/p/36085324的。 简单说一下我理解到的方法吧 第一步是判断输入的n是奇数还是偶数,若为奇数,则按顺时针以ACB的 阅读全文
posted @ 2020-03-01 11:22 幻想Elapse 阅读(917) 评论(0) 推荐(0) 编辑
摘要:唯一的坑可能就是0多项式的时候的输出格式吧,是输出2个0,一开始没注意就写了一个0,死活没通过。 #include <iostream> #include <string> #include <cstring> using namespace std; int a1[10000] = {0}; in 阅读全文
posted @ 2020-03-01 10:28 幻想Elapse 阅读(353) 评论(0) 推荐(0) 编辑
摘要:这一题知识点与7-14基本上是一样的,都是用的散列。 AC的代码: //将QQ号的类型从数字型改为字符串型后,成功AC。 #include <iostream> #include <string> #include <cstring> using namespace std; long N; typ 阅读全文
posted @ 2020-03-01 10:24 幻想Elapse 阅读(974) 评论(0) 推荐(0) 编辑