![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
想考科大的菜鸡cry
sit down,please.
展开
-
【图BFS】数据结构与算法 六度空间 DFS不能使用
#include<iostream> #include<iomanip> #include<string.h> #define maxsize 10003 using namespace std; int visit[maxsize]; typedef struct ArcNode { int dex; struct ArcNode *next; }ArcNode; typedef struct VNode { ArcNode *first; }VNode; t原创 2020-06-20 23:03:08 · 287 阅读 · 0 评论 -
【图】遍历图DFS,BFS 列出连通集
一、题目 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。 输入格式 输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。 输出格式 按照"{ v1 v2…vk }"的格式,每行输出一个连通集。先输出DFS的结果,再输出BFS的结果。 输入样例 8 6 0 7 0 1 2 0 4 1 2原创 2020-06-14 20:31:09 · 1862 阅读 · 0 评论 -
【图的遍历算法操作】深度优先搜索遍历(DFS)和广度优先搜索遍历(BFS)
一、DFS 图的深度优先搜索遍历类似于二叉树的先序遍历。 基本思想是 首先访问出发点v,并将其标记为已访问过; 然后选取与v邻接的未被访问的任意一个顶点w,并且访问它; 再选取与w邻接的未被访问过的任意顶点并访问,以此重复。 当一个顶点的所有邻接点都被访问过时,依次退回到最近被访问过的顶点。 若该顶点还有其他邻接顶点未被访问,则从这些未被访问的顶点中取一个并重复上述过程。 二、代码 以邻接表为存储结构的图的DFS代码如下: int visit[maxsize]; /*v是起点编号,visit[]是一个全原创 2020-06-14 20:29:16 · 383 阅读 · 0 评论 -
【二叉排序树】是否是同一棵二叉排序树
一。题目 给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。 二、思路 刚看这道题目输入样例没看懂,后来发现是“包含若干组测试用例”。。。 整个题思路很简单,主要是两个函数 二叉排序树的插入函数 遍历两棵树,每次判断遍历的相同位置的相同节点的data数据是不是一样。不管用什么前序,中序,原创 2020-06-13 22:34:21 · 1766 阅读 · 0 评论 -
【二叉树】树的层次遍历判断树的同构(思路代码)
一、题目 给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。 现给定两棵树,请你判断它们是否是同构的。 输入样例1 8 A 1 2 B 3 4 C 5 - D - - E 6 - G 7 - F - - H - - 8 G - 4 B 7 6 F - - A 5 1 H - - C 0 - D - - E 2 - 输出样例1 Yes原创 2020-06-07 22:15:40 · 465 阅读 · 0 评论