![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树
今天写算法了吗
这个作者很懒,什么都没留下…
展开
-
图3 六度空间
“六度空间”理论又称作“六度分隔(Six Degrees of Separation)”理论。这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过五个人你就能够认识任何一个陌生人。”如图1所示。“六度空间”理论虽然得到广泛的认同,并且正在得到越来越多的应用。但是数十年来,试图验证这个理论始终是许多社会学家努力追求的目标。然而由于历史的原因,这样的研究具有太大的局限性和困难。随着当代人的联络主要依赖于电话、短信、微信以及因特网上即时通信等工具,能够体现社交网络关系的原创 2020-12-09 17:13:41 · 108 阅读 · 0 评论 -
Saving James Bond - Easy Version 拯救007(25分)
#include<bits/stdc++.h>using namespace std;int G[30][30];int vis[30];struct location{ int x; int y;}loc[100]; float dic(location a,location b){ return pow(pow(a.x-b.x,2)+pow(a.y-b.y,2),0.5);}bool DFS(int cur,int n){ if(cur==n+1) return原创 2020-12-09 08:49:32 · 200 阅读 · 0 评论 -
列出连通集 (25分)
给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。输入格式:输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。输出格式:按照"{ v1 v2 … vk }"的格式,每行输出一个连通集。先输出DFS的结果,再输出BFS的结果。8 60 70 1原创 2020-12-07 22:26:21 · 212 阅读 · 0 评论 -
2-2 畅通工程之局部最小花费问题 (有分析和测试点)
2-2 畅通工程之局部最小花费问题 (30分)某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出“畅通工程”的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建快速路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全地区畅通需要的最低成本。输入格式:输入的第一行给出村庄数目N (1≤N≤100);随后的N(N−1)/2行对应村庄间道路的成本及修建状态:每行给原创 2020-11-27 18:57:01 · 1938 阅读 · 6 评论 -
二叉搜索树(04-树4 是否同一棵二叉搜索树 (25分))
1.二叉搜索树(二叉排序树,二叉查找树).它或许是一棵空树,或许是具有以下性质的二叉树:.若他的左子树不为空,则左子树上所有节点的值都小于根节点的值.若它的右子树不为空,则右子树上所有节点的值都大于根节点的值.它的左右子树也分别是二叉搜索树 <1>树的建立 :先创建一个树结点,然后依次输入值,根据树值的大小,插入树中输入样例6 4 2 5 1 3 6#include<stdio.h>#include<stdlib.h>typedef struct t原创 2020-11-15 22:31:49 · 220 阅读 · 0 评论 -
7-5 部落 (20分)
7-5 部落 (20分)在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。输入格式:输入在第一行给出一个正整数N(≤104 ),是已知小圈子的个数。随后N行,每行按下列格式给出一个小圈子里的人:K P[1] P[2] ⋯ P[K]其中K是小圈子里的人数,P[i](i=1,⋯,K)是小圈子里每个人的编号。这里所有人的编号从1开始连续原创 2020-11-15 16:25:14 · 244 阅读 · 0 评论 -
7-3 顺序存储的二叉树的最近的公共祖先问题 (20分)
设顺序存储的二叉树中有编号为i和j的两个结点,请设计算法求出它们最近的公共祖先结点的编号和值。输入格式:输入第1行给出正整数n(≤1000),即顺序存储的最大容量;第2行给出n个非负整数,其间以空格分隔。其中0代表二叉树中的空结点(如果第1个结点为0,则代表一棵空树);第3行给出一对结点编号i和j。题目保证输入正确对应一棵二叉树,且1≤i,j≤n。输出格式:如果i或j对应的是空结点,则输出ERROR: T[x] is NULL,其中x是i或j中先发现错误的那个编号;否则在一行中输出编号为i和j的两原创 2020-11-14 19:36:17 · 588 阅读 · 0 评论 -
7-4 树的遍历 (20分)
7-4 树的遍历 (20分)给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例:72 3 1 5 7 6 41 2 3 4 5 6 7输出样例:4 1 6 3 5 7 2#include<bits/s原创 2020-11-13 20:19:03 · 279 阅读 · 0 评论 -
还原二叉树
1./给出先序序列,中序序列,结点数还原二叉树 //给出先序序列,中序序列,结点数还原二叉树 #include<bits/stdc++.h>using namespace std;typedef struct tree *BT;struct tree{ char data; BT left; BT right;};char v1[10000],v2[10000];BT creat(int root,int beg,int len){ if (len<=0) re原创 2020-11-11 20:57:58 · 298 阅读 · 0 评论 -
7-1 树的同构 (20分)
给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。图1图2现给定两棵树,请你判断它们是否是同构的。输入格式:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N (≤10),即该树的结点数(此时假设结点从0到N−1编号);随后N行,第i行对应编号第i个结点,给出该结点中存储的1个英文大写字母、其左孩子结点的编号、原创 2020-11-10 14:53:32 · 347 阅读 · 0 评论 -
03-树3 Tree Traversals Again (25分)
03-树3 Tree Traversals Again (25分)An inorder binary tree traversal can be implemented in a non-recursive way with a stack. For example, suppose that when a 6-node binary tree (with the keys numbered from 1 to 6) is traversed, the stack operations are: push原创 2020-11-08 08:58:56 · 172 阅读 · 0 评论 -
03-树2 List Leaves (25分)
03-树2 List Leaves (25分)Given a tree, you are supposed to list all the leaves in the order of top down, and left to right.Input Specification:Each input file contains one test case. For each case, the first line gives a positive integer N (≤10) which is原创 2020-11-07 19:33:03 · 63 阅读 · 0 评论 -
4-13 先序输出叶结点 (10分)
本题要求按照先序遍历的顺序输出给定二叉树的叶结点。函数接口定义:void PreorderPrintLeaves( BinTree BT );其中BinTree结构定义如下:typedef struct TNode *Position;typedef Position BinTree;struct TNode{ElementType Data;BinTree Left;BinTree Right;};函数PreorderPrintLeaves应按照先序遍历的顺序输出给定二叉树BT的叶结原创 2020-11-03 13:24:43 · 276 阅读 · 0 评论 -
03-树1 树的同构 (25分)
03-树1 树的同构 (25分)给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。图1图2现给定两棵树,请你判断它们是否是同构的。输入格式:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N (≤10),即该树的结点数(此时假设结点从0到N−1编号);随后N行,第i行对应编号第i个结点,给出该结点中存储的1个原创 2020-11-06 22:27:00 · 95 阅读 · 0 评论