数据结构 - 树与二叉树
文章平均质量分 91
【数据结构】——树与二叉树,知识总结+刷题总结
繁凡さん
只想当个小透明,就图一乐^q^,希望可以做出一些微小的贡献(目前研究方向:自然语言处理、深度学习中的对抗攻击、元学习,欢迎大佬们来与我交流^0^)
展开
-
树和二叉树(四种遍历,建树)详解+二叉排序树(包含图像和相关习题)
目录树和二叉树一.树2.有序树和无序树3.森林4.树的基本性质二.二叉树的概念1.二叉树和度为2的有序树的区别:2.满二叉树3.完全二叉树:4.平衡二叉树:5.二叉树的遍历1.先序遍历(1)递归写法(2)先序非递归写法2.中序遍历3.后序遍历UVA548 树 Tree(通过中序遍历和后续遍历建树)4.层序遍历UVA122 树的层次遍历 Trees on the level(两种方法详解)6.二叉树...原创 2020-02-24 12:02:35 · 5363 阅读 · 1 评论 -
二叉排序树(完整代码)
目录二.二叉排序树1.二叉排序树(代码)P1087 FBI树 (建树)HDU 4707 Pet二.二叉排序树先序遍历:根->左->右中序遍历:左->根->右后序遍历:左->右->根1.二叉排序树(代码)输入75 4 3 3 3 2 1输出1 2 3 3 3 4 5//二叉排序树(左<根<右)#include<...原创 2020-01-23 17:21:15 · 1949 阅读 · 0 评论 -
数据结构(C语言版) 第 五 章 树与二叉树 知识梳理 + 作业习题详解
目录树和二叉树一.树2.有序树和无序树3.森林4.树的基本性质本系列博客为《数据结构》(C语言版)的学习笔记(上课笔记),仅用于学习交流和自我复习数据结构合集链接: 《数据结构》C语言版(严蔚敏版) 全书知识梳理(超详细清晰易懂)树和二叉树一.树树:是N(N≥0)个结点的有限集合,N=0时,称为空树,这是一种特殊情况。在任意一棵非空树中应满足:有且仅有一个特定的称为根的结点。当N>1时,其余结点可分为m(m>0)个互不相交的有限集合T1,T2,…,Tm,其中每一个集合本身原创 2020-05-18 19:39:23 · 27917 阅读 · 19 评论 -
小H和游戏(无根树转有根树,思维)难度⭐⭐⭐★
链接:https://ac.nowcoder.com/acm/contest/5203/D来源:牛客网题目描述小H正在玩一个战略类游戏,她可以操纵己方的飞机对敌国的N座城市(编号为1~N)进行轰炸 敌国的城市形成了一棵树,小H会依次进行Q次轰炸,每次会选择一个城市A进行轰炸,和这座城市距离不超过2的城市都会受损(这里距离的定义是两点最短路径上的边数),轰炸结束后,小H还想知道当前城市...原创 2020-04-14 21:40:26 · 1104 阅读 · 0 评论 -
牛客 Tree(最小深度总和)(两种方法求重心)难度⭐⭐⭐
链接牛妹有一张连通图,由n个点和n-1条边构成,也就是说这是一棵树,牛妹可以任意选择一个点为根,根的深度deprootdep_{root}deproot为0,对于任意一个非根的点,我们将他到根节点路径上的第一个点称作他的父节点,例如1为根,1−41-41−4的;路径为1−3−5−41-3-5-41−3−5−4时,4的父节点是5,并且满足对任意非根节点,depi=depfai+1dep_i=d...原创 2020-03-09 11:52:49 · 447 阅读 · 0 评论 -
非二叉树 UVA297 四分树 Quadtrees
UVA297 四分树 Quadtrees题意翻译如图所示,可以用四分图来表示一个黑白图像,方法是用根节点表示整幅图像,然后把行列个分成两等份,按图中的方式编号,从左到右对应4个子节点。如果某子节点对应的区域全黑或全白,则直接用一个黑节点或白节点表示;如既有黑又有白,则用一个灰节点表示,并且为这个区域递归建树。 给出两棵四分树的先序遍历,求二者合并(黑色部分合并)黑像素的个数(每幅图都是32X...原创 2020-02-24 16:31:09 · 804 阅读 · 0 评论 -
UVA699 下落的树叶 The Falling Leaves(二叉树的递归遍历建树)
UVA699 下落的树叶 The Falling Leavesbool型的函数一定不能忘了组后要加上return 1;或者return 0;!!!!#include<bits/stdc++.h>using namespace std;#define debug(x) cout<<"# "<<x<<" "<<endl;type...原创 2020-02-24 12:45:19 · 447 阅读 · 0 评论 -
UVA839 天平 Not so Mobile(二叉树的递归遍历建树并回答问题)
UVA839 天平 Not so Mobile#include<bits/stdc++.h>using namespace std;#define debug(x) cout<<"# "<<x<<" "<<endl;typedef long long ll;const ll mod=2147483647;const ll...原创 2020-02-24 12:03:30 · 428 阅读 · 4 评论 -
UVA548 树 Tree(通过二叉树中序遍历和后序遍历建树并回答问题)
UVA548 树 Tree题意翻译输入一个二叉树的中序和后序遍历,请你输出一个叶子节点,该叶子节点到根的数值总和最小,且这个叶子是编号最小的那个。 输入: 您的程序将从输入文件中读取两行(直到文件结尾)。第一行是树的中序遍历值序列,第二行是树的后序遍历值序列。所有值将不同,大于零且小于或等于10000.二叉树的节1<=N<=10000。 输出: 对于每个树描述,您应该输出最小值路径...原创 2020-02-23 21:17:43 · 477 阅读 · 5 评论 -
UVA122 树的层次遍历 Trees on the level(两种方法详解)
UVA122 树的层次遍历 Trees on the level输入:(11,LL) (7,LLL) (8,R)(5,) (4,L) (13,RL) (2,LLR) (1,RRR) (4,RR) ()(3,L) (4,R) ()输出:5 4 8 11 13 4 7 2 1not complete//不管是左子树还是右子树,它们的父节点都是P/2;以下内容来自《算法竞赛入门经...原创 2020-02-23 10:04:56 · 732 阅读 · 0 评论 -
UVA679 小球下落 Dropping Balls(二叉树的编号)
许多的小球一个一个的从一棵满二叉树上掉下来组成一个新满二叉树,每一时间,一个正在下降的球第一个访问的是非叶子节点。然后继续下降时,或者走右子树,或者走左子树,直到访问到叶子节点。决定球运动方向的是每个节点的布尔值。最初,所有的节点都是 FALSE,当访问到一个节点时,如果这个节点是 FALSE,则这个球把它变成 TRUE,然后从左子树走,继续它的旅程。如果节点是TRUE,则球也会改变它为 FAL...原创 2020-02-22 17:32:39 · 478 阅读 · 0 评论