C++中树相关知识大全

本文深入探讨了C++中的树相关知识,包括树的基本概念、遍历方法、特殊性质以及如何用C++表示树。特别关注了森林转换为二叉树的算法,为理解和实现树的数据结构提供了全面指导。
摘要由CSDN通过智能技术生成

一、树的基本知识
(1)概念

        **树**:树是一些节点的集合。这个集合可以是空集;若集合不是空集,则树由根节点r以及0个或多个子树组成。
        **边**:两个节点之间的连线就是边。
        **树叶**:没有儿子的节点称为树叶。 
        **节点的度**:节点拥有的子树数称为节点的度。
        **度**:节点的度的最大值称为树的度。
        **兄弟**:具有相同父亲节点的节点称为兄弟。
        **路径**:从节点n1到节点nk的路径定义为n1,n2,…,nk的一个序列,但是ni必须是n(i+1)的父节点。这也要求了路径必须从根节点往下遍历,
        而不能逆向而上。而且对于任意节点,有且只有一条路径。
        **路径的长**:某条路径上的边的个数就是路径的长。
        **深度**:ni的深度表示从根节点到ni的路径的长。根的深度为0。
        **高度**:ni的高度为从ni到其树叶的最大的深度。因此,所有树叶的高度都是0。一棵树的高等于它根的高,
        一棵树的深度等于它最深的叶子节点的深度。

(2)遍历

				        对于一般的树来说,只有先序遍历与后序遍历,木有中序遍历——因为子树的个数不确定,无法决定访问根节点的时机。
						**先序遍历**:
				        1、先访问根节点。
				        2、依次先序遍历根节点的每棵子树。
				              同时这也是一个递归定义。
						**后序遍历**:
				        1、先依次后序遍历每棵子树。
				        2、再访问根节点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

N1314N

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值