
算法
人间理想xxf
这个作者很懒,什么都没留下…
展开
-
如何判断一棵树是不是完全二叉树? pat1110题思路
算法思路:1.将每个点的值存入固定的数组下标(指的是x的左孩子对对应2x,右孩子对应于2x+1),对应的数组变量(相当于座位)中。2.看最后一个节点的座位编号是不是等于n(n是总的节点个数),如果是,则是完全二叉树,否则不是。...原创 2020-08-09 22:50:15 · 235 阅读 · 0 评论 -
如何用数组模拟树
如何使用数组模拟树?代码示例如下:const int N=10010,M=N*2;int n;int p[N];int h[N],e[M],ne[M],idx;void add(int a,int b){ e[idx]=b,ne[idx]=h[a],h[a]=idx++;}注:因为树是无向图,所以可以把每一条边当成2个有向边存储。这样就是上面第三行为什么M是N的2倍的原因。那么当树以无向图的方式存储(也就是每一条边当成2条有向边存储时),如何使用dfs()遍历每个节点而不重复原创 2020-07-26 18:23:00 · 896 阅读 · 0 评论 -
如何使用DFS()遍历树的每个节点而不重复呢?(pat1021题解)
当树以无向图的方式,数组模拟的方式 存储(也就是每一条边当成2条有向边存储时),如何使用dfs()遍历每个节点而不重复呢?示例的代码如下:int dfs(int u,int father )//father用于防止重复搜索的dfs,使得每个叶子节点只可以搜索一次{ int depth=0; for(int i=h[u];i!=-1;i=ne[i]) { int j=e[i] ; if (j==father) continue;//过滤掉父节点,让原创 2020-07-26 18:22:03 · 838 阅读 · 0 评论 -
pat A 1086
我是这么写的,奈何实在不能通过???!!!!找了一个上午没找出来!先放过!下面是未通过的,我写的。`#include <iostream>#include <algorithm>#include <cstdio>#include <stdio.h>#include <math.h>#include <queue>...原创 2020-04-11 12:36:31 · 126 阅读 · 0 评论 -
PAT A1114题目记录。以及出错的地方
我在初始化的地方错了,后面找了好久才找出来。呜呜呜#include <iostream>#include <algorithm>#include <cstdio>#include <stdio.h>#include <math.h>#include <queue>using namespace std;int ...原创 2020-04-09 21:11:13 · 563 阅读 · 0 评论