树
- 树(Tree)是n个结点的有限集;它或为空树(n=0),或为非空树;
- 对于非空树:(1)有且仅有一个被称为根的结点;(2)除根结点以外的其余结点可分为m个互不相交的有限集T1、T2等等,其中每个集合又是一颗树,并且称为根的子树(SubTree);
- 基本术语:结点、结点的度、树的度、叶子、非终端结点、双亲和孩子、兄弟、祖先、子孙、层次、堂兄弟、树的深度、有序树和无序树、森林。
二叉树
一、二叉树的定义
- 二叉树(Binary Tree):只有左子树和右子树;且两子树顺序不能颠倒
二、二叉树的性质
- 性质1:二叉树第i层上的结点数目最多为 (i≥1)。
- 性质2:深度为k的二叉树至多有-1个结点(k≥1)。
- 性质3:包含n个结点的完全二叉树的深度为log以2为底的向下取整再+1。
- 性质4:在任意一棵二叉树中,若终端结点的个数为n0,度为2的结点数为n2,则n0=n2+1
三、二叉树的存储结构
- 顺序存储结构
//-----二叉树的顺序存储结构----- #define MAXSIZE 100 //二叉树的最大结点数 typedef TElemType SqBiTree[MAXSIZE]; SqBiTree bt;
-
链式存储结构
//-----二叉树的二叉链表存储表示----- typedef struct BitNode { TElemType data; //结点数据域 struct BiTNode *lchild,*rchild; //左右孩子指针 }BiTNode,*BiTree;
四、遍历二叉树和线索二叉树
五:数和森林
六:哈夫曼树及其应用
为什么只写标题呢?
因为我懒的写了。。。