一棵树中每两个点之间都有且只有一条路径(指没有重复边的路径)。一颗有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),也就是除了叶节点都只有一个子树,或者常数个分支的情况。所以树作为数据结构时通常需要另外进行平衡。
存储
对于普通的树,可以像图一样为每一个点存储一个边表(通常按顺序存和每一个点的关系的叫做邻接矩阵,存具体的边的叫做邻接表),或者直接存储所有边的边表等。由于树是稀疏图,所以一般不用邻接矩阵存储。对于有根树,如果用为每一个点储存一个边表的方法,由于每一棵树都只有一个父节点,所以通常指向父节点的边不存在这个表中。同时如果子节点是没有顺序的,也是因为一个节点的子节点不会同时是其他节点的子节点,也可以把子节点直接当成存边的链表的节点,这时候每个节点只需要储存两个指针,所以这种存储方法有时候也会被叫做多叉树转二叉树。
对于子节点是有顺序的有根树,每条边都可以以固定的位置分别储存。对于完全二叉树甚至能直接用一个数组访问所有节点,不另外储存边的信息。有的树可以被设计成固定的从根节点开始访问,这时候可以不储存父节点。同样的,有的树也可以省略子节点,例如并查集。
树。。。。。
说小于顶点数。
,以及合并两个集合等。
加载更多
小说推荐
- 重生之兵哥哥好哥哥
- 《重生之兵哥哥好哥哥(完结)作者:醉小仙TXT下载再重生回来才发现,父母包办的婚姻竟然也可以如此的幸福,以前怎么会觉得他粗鲁又阴戾,再次认识才发现,原来硬汉的外表下也有柔情,霸道的性子也带着蜜意。不过这当兵的体力实在是太好了!前世就折腾的她恨不得死过去,吓得单纯得她总是想要逃离,这辈子也不例外的还是
- 都市言情未知连载中
- 最新章:第73章
- 这样的哥哥肯定是邻居啊
- 邻居空了五年多的房子有人住了进来,是曾教她认星星的那个男生 作者:巧神工所写的《这样的哥哥肯定是邻居啊》无弹窗免费全文阅读为转载作品,章节由网友发布
- 网游小说巧神工连载中
- 最新章:0155婚礼进行中
- 未来的我居然成神了
- 微信上有人给我开视频,和我长的一模一样,竟然说是未来的我…新书起航求呵护 富豪们,收藏,推荐都砸来吧 作者:肩挑两座山所写的《未来的我居然成神了》无弹窗免费全文阅读为转载作品,章节由网友发布
- 都市言情肩挑两座山连载中
- 最新章:第一百二十五章终于成神(大结局)
- 我居然成了山神
- 周川来到了玄幻世界,穿越十余载,却落得个葬身荒野的下场。他的灵魂久久不散,居然与山林融合,成了一名山神,并且成功激活外挂系统…无数年后,一座仙山自苍茫拔地而起,上通天穹,下连九幽!有人称它为周山,是世间唯一通往仙界的路径;有人唤它为昆仑,为万山之祖,一切的起源…它只是静静的矗立在天地之间,就受万族朝
- 玄幻小说抚筏连载中
- 最新章:完本感言
- 怦然心动:居然喜欢你
- 【2019云起华语文学征文大赛】参赛作品】大年初一那天,一高校草兼二学霸在路边捡了个姑娘,后来发现,这个可爱软萌的姑娘就是大学霸 晴空想,如果每个人都要用一生的幸运去得到一次救赎,她的救赎就是遇见他 作者:昀母所写的《怦然心动:居然喜欢你》无弹窗免费全文阅读为转载作品,章节由网友发布
- 都市言情昀母连载中
- 最新章:第106章 讨厌就好
- 我居然变成了女的
- 老子我好歹也是四中老大,就算没那头衔也算是社会未来的栋梁,不过是个小小的车祸,怎么一觉醒来连性别都变了 变成女的了老子我忍,被以前的好哥们误会老子我也忍,可是被男的强吻老子不能忍 看清楚,老子不是同性恋!喜欢我文的亲请收藏我吧,想要跟我交流或者愿意跟我做朋友的,来加我吧,新群6382707,敲门砖,
- 都市言情近墨完本
- 最新章:150 番外7 逼婚记
- 我居然成了反派
- 她死后却被拉进系统,而系统对她发布的任务却是【你需要作为正派之首的男主对你说一句:我爱你】她挑眉“就这么简单【在这个世界里面,你身体的原主是一个大反派?不过好在梅安心态好,不崩。可谁知一见到男主,受到的提示居然是【系统提示:仇恨值+1【系统提示:仇恨值+1】什么鬼 这么小气的男主哪来的?想换男主角了
- 都市言情知雪乱连载中
- 最新章:第六十二章 真想只有一个
- 我居然成了上门女婿
- 十年河东,十年河西!十年前,被未婚妻一家嫌弃家里穷,没本事,十年后,骆绍东成了大名集团秦家的上门女婿 作者:我是张无忌所写的《我居然成了上门女婿》无弹窗免费全文阅读为转载作品,章节由网友发布
- 都市言情我是张无忌连载中
- 最新章:新书已经发了,书名《以妻之名》
- 我居然成了动物园园长
- 下载客户端,查看完整作品简介 作者:灵隐颖所写的《我居然成了动物园园长》无弹窗免费全文阅读为转载作品,章节由网友发布
- 武侠小说灵隐颖连载中
- 最新章:第七章能力暴涨