数据结构——树

来源:互联网 发布:数据企业的问题 编辑:程序博客网 时间:2024/04/29 20:10

树是一种很常用的数据结构,一般用来表示具有层次结构的数据。

本篇博客中主要包含三个方面: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.



0 0