您的位置:首页 > 理论基础 > 数据结构算法

数据结构——树

2016-04-08 18:44 267 查看
树是一种很常用的数据结构,一般用来表示具有层次结构的数据。

本篇博客中主要包含三个方面:1.树的定义和基本概念 2.二叉树

一、树的定义和基本概念

1)树是n(n>=0)个结点的有限集合。当n=0时是一棵空树,当n>0时,至少含有一个结点。

2)根(Root):有且仅有一个结点(n=1)时,那个结点就是根节点

3)子树(Subtree):当n>1时,除了根节点以外的其余结点可以分为m个互不相交的集合,每个集合又可以构成一棵树,成为根的子树

4)叶子结点(leaf):没有子结点的结点

5)父结点(parent)和子结点(child):若结点x有一个以结点y为树根的子树,则x为y的父结点,y为x的孩子

6)兄弟结点(sibling):若z和y有同一个父亲,则z和y互为兄弟。

7)结点的度(degree):结点子树的个数

8)树的度:一棵树中最大的结点的度数

9)结点的层次(level):将根结点的层次设为1,其子结点的层次为2,以此类推

10)树的深度(depth):叶子结点的最大层次

11)祖先(ancestor):由某结点x到根节点的路径上的所有结点,均称为x的祖先。

举个例子:



这棵树共有13个结点(n=13),根节点为A,{B,E,F,K,L}、{C,G}、{D,H,I,J,M}是A的三棵子树,K,L,M是三个叶子节点,他们没有子树了。

B是A的子结点,是E,F的父结点,和C,D是兄弟。

B的度是2,D的度是3,结点的度最大是3(D的度),故树的度是3.

A的层次是1,B,C,D的层次是2,E,F,G,H,I,J的层次是3,K,L,M的层次是4,叶子节点(K,L,M)的最大层次是4,故树的深度是4.

M的祖先是H,D,A。

二、二叉树(Binary Tree)

首先,二叉树也是树,树的概念他都有的,只是比较特别。特别之处就在于:每个节点至多只有两个孩子,分为左孩子和右孩子。也就是说每个节点的度至多为2.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: