《数据结构》-树和森林_第1页
《数据结构》-树和森林_第2页
《数据结构》-树和森林_第3页
《数据结构》-树和森林_第4页
《数据结构》-树和森林_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

6.1 树的定义和基本术语,6.2 二叉树,6.3 遍历二叉树和线索二叉树,6.4 树和森林,6.6 哈夫曼树及其应用,第六章 树和二叉树,6.4 树和森林,树的三种存储结构,一、双亲表示法,二、孩子链表表示法,三、树的二叉链表(孩子-兄弟) 存储表示法,r=0n=7,data parent,一、双亲表示法:,typedef struct PTNode Elem data; int parent; / 双亲位置域 PTNode;,#define MAX_TREE_SIZE 100,结点结构:,C语言的类型描述:,typedef struct PTNode nodes MAX_TREE_SIZE; int r, n; / 根结点的位置和结点个数 PTree;,树结构:,r=0n=7,data firstchild,二、孩子链表表示法:,-1 0 0 0 2 2 4,typedef struct CTNode int child; struct CTNode *nextchild; *ChildPtr;,孩子结点结构:,C语言的类型描述:,typedef struct Elem data; ChildPtr firstchild; / 孩子链的头指针 CTBox;,双亲结点结构,typedef struct CTBox nodesMAX_TREE_SIZE; int n, r; / 结点数和根结点的位置 CTree;,树结构:,root,三、树的二叉链表 (孩子-兄弟)存储表示法,typedef struct CSNode Elem data; struct CSNode *firstchild, *nextsibling; CSNode, *CSTree;,C语言的类型描述:,结点结构:,森林和二叉树的对应关系,设森林 F = ( T1, T2, , Tn ); T1 = ( root,t11, t12, , t1m );,二叉树 B =( LBT, Node(root), RBT );,由森林转换成二叉树的转换规则为:,若 F = ,则 B = ;,由 ROOT( T1 ) 对应得到Node(root);,否则,,由 (t11, t12, , t1m ) 对应得到 LBT;,由 (T2, T3, Tn ) 对应得到 RBT。,由二叉树转换为森林的转换规则为:,由LBT 对应得到 ( t11, t12, ,t1m);,若 B = , 则 F = ;,否则,,由 Node(root) 对应得到 ROOT( T1 );,由RBT 对应得到 (T2, T3, , Tn)。,T1,T2,Tn,由此,树和森林的各种操作均可与二叉树的各种操作相对应。,应当注意的是,和树对应的二叉树,其左、右子树的概念已改变为: 左是孩子,右是兄弟,6.4.3 树和森林的遍历,一、树的遍历,二、森林的遍历,树的遍历可有2条搜索路径:,按层次遍历:,先根(次序)遍历:,后根(次序)遍历:,若树不空,则先访问根结点,然后依次先根遍历各棵子树。,若树不空,则先依次后根遍历各棵子树,然后访问根结点。,若树不空,则自上而下自左至右访问树中每个结点。,层次遍历时顶点的访问次序:,先根遍历时顶点的访问次序:,A B E F C D G H I J K,后根遍历时顶点的访问次序:,E F B C I J K H G D A,A B C D E F G H I J K,1。森林中第一棵树的根结点;,2。森林中第一棵树的子树森林;,3。森林中其它树构成的森林。,可以分解成三部分:,森林,若森林不空,则访问森林中第一棵树的根结点;先序遍历森林中第一棵树的子树森林;先序遍历森林中(除第一棵树之外)其 余树构成的森林。,先序遍历,森林的遍历,即:依次从左至右对森林中的每一棵树进行先根遍历。,中序遍历,若森林不空,则中序遍历森林中第一棵树的子树森林;访问森林中第一棵树的根结点;中序遍历森林中(除第一棵树之外)其 余树构成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论