树的定义:
一个或多个节点组成的,除树根外,其余节点可分为n>=0个互斥的集合。其中每个子集合也是一种树形结构。节点可互联但不能构成无出口的回路。不能是空集合
森林:
n个互斥树组成森林
度数:
每个节点的所有子树的个数
层数:
以根节点为第一层向下,节点所在层数
高度:
树的最大层数
树叶或终端节点:
度数为零的节点
祖先和子孙节点
祖先节点是该节点向上的任意节点,子孙节点是向下的所有节点
非终端节点
树叶节点以外的节点
同代:
树中层数相同的节点
二叉树概念:
二叉树可以是空集合,节点的度数必须0<=d<=2
二叉树的子树之间是有次序关系的
组成结构(字段):右指针 数据 左指针
使用二叉树的原因
电脑中树一般以链表形式存储,对于n叉树(n-way树),必须为每个节点预留n个链接字段的存储空间:数据 指针 指针 指针 空 空 ... 指针n
设:n叉树有m个节点,树共有m*n个字段,另外除树根外每个非空链接都会指向一个节点所以空连接字段个数为m*n-(m-1)=m*(n-1)+1#m-1个非空节点#那么n叉树的浪费率为:(m*(n-1