树的部分

抽象数据类型树:树的结构定义本身+基本操作;

定义部分是递归的定义:树是n个节点的集合(n>=0) ①有且只有一个根节点;②当节点数目大于一时,其他节点可以分成互不相交的子树。

就逻辑结构而言,任何一棵树是一个二元组Tree={ root ,  F }  root是根节点,F是m棵子树的森林。

 ------树----------------->>>>>>--------每个节点至多有两颗子树,且子树有左右之分--------->>>>>>>>二叉树

二叉树有五种基本形态:分别为空;只有根节点本身;只有左子树;只有右子树;有左右子树;

二叉树有很多性质;

二叉树的存储结构分析:

   ........................顺序结构,即采用数组实现。优点是能实现随机访问,缺点是可能空白很多,不方便插入。

  .........................链式结构大致上和其相反。

对于二叉树的遍历,这是一个问题,即如何按照某条搜索路径去   ”访问“   树中的每个节点,且每个节点均被  ”访问“   一次。

先序,中序,后序--------------波兰式,中缀表示,逆波兰式。

遍历的方法:            遍历左子树,                  遍历右子树                      (可以把访问根节点的位放在三个留白处,分别按顺序对应以上三种遍历)。

遍历的方法还有深度和广度遍历

 遍历的实质:将非线性的结构(树形)变为线性的结构(按某种顺序排列)

线索二叉树:一次遍历,次次顺序运行。(知道遍历的结果为线性队列,即前驱和后继确定后就能顺序访问,这就是线索的目的:确定每一个节点的前驱和后继)


猜你喜欢

转载自blog.csdn.net/zenglingcheng/article/details/78906192