数据结构与算法学习(四):树

一、树的定义

树是由根结点和若干颗子树构成的。树是由一个集合以及在该集合上定义的一种关系构成的。集合中的元素称为树的结点,所定义的关系称为父子关系。父子关系在树的结点之间建立了一个层次结构。在这种层次结构中有一个结点具有特殊的地位,这个结点称为该树的根结点,或称为树根。

相关术语

节点的度:一个节点含有的子树的个数称为该节点的度;
叶节点或终端节点:度为0的节点称为叶节点;
非终端节点或分支节点:度不为0的节点;
双亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点;
孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点;
兄弟节点:具有相同父节点的节点互称为兄弟节点;
树的度:一棵树中,最大的节点的度称为树的度;
节点的层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推;
树的高度或深度:树中节点的最大层次;
堂兄弟节点:双亲在同一层的节点互为堂兄弟;
节点的祖先:从根到该节点所经分支上的所有节点;
子孙:以某节点为根的子树中任一节点都称为该节点的子孙。
森林:由m(m>=0)棵互不相交的树的集合称为森林;
 
二、树的结构
 
1.双亲表示法
由于树中的每个结点都有唯一的一个双亲结点,所以可用一组连续的存储空间(一维数组)存储树中的各个结点,数组中的一个元素表示树中的一个结点,每个结点含两个域,数据域存放结点本身信息,双亲域指示本结点的双亲结点在数组中位置。
 
 

2.孩子兄弟表示法

孩子兄弟表示法的每个节点有两个指针域,一个指向其长子,另一个指向其兄弟.

用孩子兄弟表示法可以表示为:

二叉树

1.二叉树的概念和性质

二叉树的定义:二叉树是一种最简单的树形结构,树中每个节点至多关联到两个后继点,且一个结点关联的后继结点明确的分左右。

 

满二叉树:如果二叉树中所有分支结点的度数都是2,则称它为一棵满二叉树

扩充二叉树:对于二叉树T,加入足够多的新叶结点,使T的原有结点都变为度数为2的分支结点,得到的二叉树T为扩充二叉树

完全二叉树:一棵二叉树至多只有最下面的一层上的结点的度数可以小于2,并且最下层上的结点都集中在该层最左边的若干位置上,而在最后一层上,右边的若干结点缺失的二叉树,则此二叉树成为完全二叉

2.二叉树的遍历

深度优先遍历:顺着一条路尽可能向前探索,必要时回溯;

广度优先遍历:在所有路径上齐头并进

 

posted @ 2018-03-06 17:13  薛定谔病态猫  阅读(216)  评论(0编辑  收藏  举报