树的定义
树是由 n (n >= 0) 个结点组成的有限集合。如果 n = 0,称为空树;如果 n > 0,则 有一个特定的称之为根的结点,它只有直接后继,但没有直接前驱;
除根以外的其它结点划分为 m (m >= 0) 个 互不相交的有限集合T0, T1, …, Tm-1,每个集合又是一棵树,并且称之为根的子树。每棵子树的根结点有且仅有一个直接前驱,但可以有0个或多个直接后继。
节点:表示树中的元素,包括数据元素的内容及其指向其子树的分支。
节点的度:节点的分支数。
终端节点(叶子):度为0的节点。
非终端节点:度不为0的节点。
节点的层次:树中根节点的层次为1,根节点子树的根为第2层,以此类推。
树的度:树中所有节点度的最大值。
树的深度:树中所有节点层次的最大值。
有序树、无序树:如果树中每棵子树从左向右的排列拥有一定的顺序,不得互换,则称为有序树,否则称为无序树。
森林:是m(m≥0)棵互不相交的树的集合。
在树结构中,节点之间的关系又可以用家族关系描述,定义如下。
孩子、双亲:某个节点的子树的根称为这个节点的孩子,而这个节点又被称为孩子的双亲。
子孙:以某节点为根的子树中的所有节点都被称为该节点的子孙。
祖先:从根节点到该节点路径上的所有节点。
兄弟:同一个双亲的孩子之间互为兄弟。
堂兄弟:双亲在同一层的节点互为堂兄弟。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)