手机浏览器扫描二维码访问
一棵树中每两个点之间都有且只有一条路径(指没有重复边的路径)。一颗有n个点的树有n-1条边,也就是连接n个点所需要的最少边数。所以如果去掉树中的一条边,树就会不连通。
如果在一棵树中加入任意的一条边,就会得到有且只有一个环的图。这是因为这条边连接的两个点(或是一个点)中有且只有一条路径,这条路径和新加的边连在一起就是一个环。如果把一个连通图中的多余边全部删除,所构成的树叫做这个图的生成树。
如果要在树中加入一个点,就要加入一条这个点和原有的点相连的边。这条边不会给这棵树增加一个环或者多余的路径。所以每次这样加入一个点,就可以构成一棵树。
一棵树既可以是有向的也可以是无向的。显然,树是连通图,但不会是双连通图(对于无向图)或者强连通图(对于有向图)。树可以算是稀疏图。
显然树中也没有自环和重复边。
定义
如果一个无向简单图g满足以下相互等价的条件之一,那么g是一棵树:
g是没有回路的连通图。
g没有回路,但是在g内添加任意一条边,就会形成一个回路。
g是连通的,但是如果去掉任意一条边,就不再连通。
g是连通的,并且3顶点的完全图?不是g的子图。
g内的任意两个顶点能被唯一路径所连通。
如果无向简单图g有有限个顶点(设为n个顶点),那么g是一棵树还等价于:
g是连通的,有n?1条边,并且g没有简单回路。
如果一个无向简单图g中没有简单回路,那么g是森林。
性质
一棵树中每两个点之间都有且只有一条路径(指没有重复边的路径)。一颗有n个点的树有n-1条边,也就是连接n个点所需要的最少边数。所以如果去掉树中的一条边,树就会不连通。
如果在一棵树中加入任意的一条边,就会得到有且只有一个环的图。这是因为这条边连接的两个点(或是一个点)中有且只有一条路径,这条路径和新加的边连在一起就是一个环。如果把一个连通图中的多余边全部删除,所构成的树叫做这个图的生成树。
如果要在树中加入一个点,就要加入一条这个点和原有的点相连的边。这条边不会给这棵树增加一个环或者多余的路径。所以每次这样加入一个点,就可以构成一棵树。
一棵树既可以是有向的也可以是无向的。显然,树是连通图,但不会是双连通图(对于无向图)或者强连通图(对于有向图)。树可以算是稀疏图。
显然树中也没有自环和重复边。
有根树
在一棵树中可以指定一个特殊的节点:根。一个有根的树叫做有根树。
有根树中的节点可以根据到根的距离分层。一颗有根树的层数叫做这棵树的高度。节点最多的那一层的节点数叫做这棵树的宽度。对于有根树,每条边都有一个特殊的方向:指向根节点的方向,或者说上一层的方向(或者相反的,指向叶节点的方向,下一层的方向)。一条边的两个端点中,靠近根的那个节点叫做另一个节点的父节点(也叫父亲、双亲、双亲节点),相反的,距离根比较远的那个节点叫做另一个节点的子节点(也可以叫孩子,儿子,子女等)。父亲方向的所有节点都叫做这个节点的祖先,儿子方向的所有节点都叫做这个节点的子孙。没有子节点的子节点叫做叶节点(或者叶子节点)。由于到根的路径只有一条,根节点以外的节点的父节点永远只有一个,祖先就是这个点到根的路径上的所有节点(包括根,不包括这个节点本身)。另外,以一个节点为根的树是指包括这个节点和其所有子孙,并以这个节点为根的树。由于一般不需要这以外的子树,每一个节点也可以对应到一个以其为根的树,一个节点的子树通常也是指以这个节点的子节点为根的树。
如果一颗有根树每个节点的子树最多有n个,同时每个节点在其父节点中都有固定的可能可以留空的位置,这棵树叫做n叉树。其中每个节点都可以有两个固定位置的子树的有根树叫做二叉树,二叉树中每个节点的两个子树分别叫做左子树和右子树,由于位置固定,没有左子树的时候也是可以有右子树的。而“多叉树”通常并不指n为任意值的n叉树,只是在和n叉树作比较的时候表示普通的有根树。
对于随机的树,高度的平均复杂度是o(logn),但是没有限制而且不随机的树高度也可以达到o(n),也就是除了叶节点都只有一个子树,或者常数个分支的情况。所以树作为数据结构时通常需要另外进行平衡。
存储
对于普通的树,可以像图一样为每一个点存储一个边表(通常按顺序存和每一个点的关系的叫做邻接矩阵,存具体的边的叫做邻接表),或者直接存储所有边的边表等。由于树是稀疏图,所以一般不用邻接矩阵存储。对于有根树,如果用为每一个点储存一个边表的方法,由于每一棵树都只有一个父节点,所以通常指向父节点的边不存在这个表中。同时如果子节点是没有顺序的,也是因为一个节点的子节点不会同时是其他节点的子节点,也可以把子节点直接当成存边的链表的节点,这时候每个节点只需要储存两个指针,所以这种存储方法有时候也会被叫做多叉树转二叉树。
对于子节点是有顺序的有根树,每条边都可以以固定的位置分别储存。对于完全二叉树甚至能直接用一个数组访问所有节点,不另外储存边的信息。有的树可以被设计成固定的从根节点开始访问,这时候可以不储存父节点。同样的,有的树也可以省略子节点,例如并查集。
树。。。。。
说小于顶点数。
,以及合并两个集合等。
加载更多
麦尔因自封印中苏醒而来,携手智慧与战争女神雅典娜打造最强圣域,迎接最终圣战的到来,可是为什么一觉醒来世界都变得不一样了?多了个企业叫史塔克工业,他的老板是托尼史塔克。多了个史塔克工业的对手叫奥斯本集团,他的老板叫诺曼奥斯本。多了个种族叫变种人,兄弟会已成记忆,X战警的两位首领是好基友,相爱相知。多了个种族叫异人族,隐藏在一座名为阿各位书友要是觉得漫威圣斗士之父还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!...
各位书友要是觉得全职高手之机械之王还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!...
云宿穿成了一剑入九霄中欺负主角的势利眼小炮灰。加班猝死后穿成富N代小龙人的云宿什么?我穿书了??告别炮灰命运从我做起,赶紧抱好主角和主角团大腿!主打一个倒贴不要钱只刷好感度不久后脑子里出现了奇怪...
屋内的光照强度低于3,目前处于黑暗状态,8分45秒之后出现1级怪异。许乐下意识缩了缩脚。你正在恐惧,恐惧是所有怪异的食粮,会吸引他们。许乐?缩个脚都不允许了?在略微慌乱的情绪中,许乐快速生起了火堆。光明涌现。屋内的光照强度为4,目前处于明亮状态,安全。许乐刚刚松了一口气,才发现这一切只是开始。扭曲的火焰形成了新的文字!房屋内有一具尸体,死亡时间已超过4小时,尸体将于10分钟后变为1级怪异。当前房屋处于破败状态,将于14分56秒之后,午夜0点出现1级怪异。红月之劫倒计时2天0小时14分56秒艹!尼玛的!崽种!你正在愤怒,愤怒是所有凶暴种的饵料,会吸引他们。许乐?相信我!我没生气!真的!黑暗的蒸汽时代,隐藏着禁忌的果实和破败的秘术。当黑夜降临,黑暗与之而来。当你漫步在黑暗时,它们,也会随之出现。你无法规避黑暗。所以,你只能等待光明!...
30岁的游戏宅因为技术太好被妹子干掉了这样太悲剧了没关系,给你一个系统去当拳皇里的超级富二代吧,还有个漂亮能干的亲妹妹哟为了保住有妹有房,父母双亡的幸福生活,主角只好不停的穿越到各种游戏动漫电影的世界里,学习技能并吸收强大的血脉壮大自己...
云暖是天上的锦鲤仙,从小生活安逸,没受过什么苦,直到不小心放了大魔王君墨。她被贬下凡,每一个世界都要让那个反派幸福,直到功德圆满。但是没人告诉她反派看上的是她啊!不过,反派真帅。那个看上去光风霁月的反派大佬轻轻咬了下他的耳朵,轻声道暖暖,乖一点。啊这这谁顶得住啊!反派之所以被称为反派,因为经历了常人难以想象的痛苦,对于他们来说,云暖就是他们唯一的温暖,不管经历什么,他们都不会放手。因为云暖她是光啊大魔王vs小仙女又名我以为我是来接受惩罚的但是却是来谈恋爱的总认为我拯救的是个小可怜可他却是个大佬不谈恋爱怎么知道恋爱原来这么甜...