非线性结构----树
定义:
1. 有且仅有一个称为根的节点
2. 有若干个互不相交的子树,这些子树本身也是一颗树
通俗的定义:
1. 树是有节点和边(指针)组成
2. 每个节点只有一个父节点但可以有多个子节点
3. 但有一个节点例外,该节点没有父节点,此节点称为根节点
双亲结点或父节点(parent):若一个节点含有子节点,则这个节点称为其子节点的父节点
孩子结点或子节点(child):一个节点含有的子树的根节点称为该节点的子节点
兄弟节点(Sibling):具有相同父节点的节点互称为兄弟节点;
节点的祖先:从根到该节点所经分支上的所有节点
子孙:以某节点为根的子树中任一节点都称为该节点的子孙。
堂兄弟
节点的层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推
树的高度或深度(Depth):树中节点的最大层次
叶子节点或终端节点:没有子节点的节点,即度为0的节点
分支节点或非终端节点:有子节点的节点,即度不为0
节点的度(degree):一个节点含有的子树的个数称为该节点的度
树的度:一棵树中,最大的节点的度称为树的度
树的分类:
一般树:任意一个节点的子节点的个数不受限制
二叉树:任意一个节点的子节点的个数最多两个,且子节点的位置不可更改
分类:
一般二叉树:
满二叉树:在不增加树的层数的前提下,无法再多添加一个节点的二叉树
完全二叉树:如果只是删除了满二叉树最底层最右边连续若干个节点,这样形成的二叉树就是完全二叉树,完全二叉树包含满二叉树(即一个节点也不删)
森林:n个互不相交的树的集合,即有N个根节点