- 0
- 0
- 约6.99千字
- 约 46页
- 2018-12-25 发布于福建
- 举报
数据结张构第14讲-线索树与树和森林-c
6.3.2 线索二叉树 1.何谓线索二叉树? 遍历结果是求得结点的一个线性序列。指向该线性序列“前驱”和“后继”的指针,称“线索”;包含“线索”的存储结构,称为“线索链表”;与其相应的二叉树,称为“线索二叉树”;对二叉树以某种次序遍历,使其变为线索二叉树的过程,称为“线索化”。 2.线索链表中结点的结构 在二叉链表的结点结构中增加两个标志域,并规定: 二叉树二叉线索存储表示 typedef enum { Link, Thread } PointerThr; // Link==0:指针,Thread==1:线索 typedef struct BiThrNode{ TElemType data; Struct BiThrNode *lchild, *rchild; // 左右孩子指针 PointerThr LTag, RTag; // 左右标志 } BiThrNode, *BiThrTree; 如何在线索树中找结点的后继? 如何在线索树中找结点的前驱? 4.如何建立线索化链表? 由于线索化的实质是将二叉链表中的空指针改为指向前驱或后继的线索,而前驱或后继的信息只有在遍历时才能得到,因此线索化的过程即为在遍历的过程中修改空指针的过程。 对二叉链表p进行中序线索化的递归算法(带头结点) Status InOrderThreading(BiThrTree Thrt,BiThrTree T) 步骤: 对二叉链表p进行中序线索化的递归算法(不带头结点) void InThreading(BiThrTree p){ if (p){ InThreading(p-lchild); //左子树线索化 if (!p-lchild){ p-lchild=pre; p-ltag=Thread;} //前驱线索 if (!pre-rchild){pre-rchild=p;pre-rtag=Thread;} //后继线索 pre = p; //保持pre指向p的前驱 InThreading(p-rchild); //右子树线索化 } }InThreading Status InOrderThreading(BiThrTree Thrt,BiThrTree T){ //中序遍历二叉树T,并将其中序线索化,Thrt指向头结点。 Thrt=(BiThrTree)malloc(sizeof(BiThrNode)); if (!Thrt) exit(OVERFLOW); Thrt-ltag=Link; Thrt-rtag=Thread; //建立头结点 Thrt-rchild=Thrt; if (!T) Thrt-lchild=Thrt; //空树,左指针回指自身 else{ //二叉树不为空树,进行线索化 Thrt-lchild=T; //头结点的lchild指向二叉链表根 pre=Thrt; //pre指向前驱结点 InThreading(T); //中序线索化二叉链表T pre-rchild=Thrt; pre-rtag=Thread; //最后一个结点线索化 Thrt-rchild=pre; } return OK; } Status InOrderThreading(BiThrTree Thrt,BiThrTree T){ Thrt=(BiThrTree)malloc(sizeof(BiThrNode)); if (!Thrt) exit(OVERFLOW); Thrt-ltag=Link; Thrt-rtag=Thread; Thrt-rchild=Thrt; if (!T) Thrt-lchild=Thrt; //空树,Thrt回指自身 else{ Thrt-lchild=T;//头结点的lchild指向二叉链表根 pre=Thrt; //pre指向前驱结点 InThreading(T); //中序线索化二叉链表T pre-rchild=Thrt; pre-rtag=Thread; //最后一个结点线索化 Thrt-rchild=pre; } return OK; } 6.4.1 树的存储结构 三种常用的链表结构: 双亲表示法 孩子表示法 孩子兄弟表示法 6.4.2 森林和二叉树的转换 1. 树和二叉树的对应关系
您可能关注的文档
- 竖向荷载作用下的近似计一算方法分层法.ppt
- 数电各章习题全解第5耦章习题作业.ppt
- 数据包络分析dea教程搞(西安交大).ppt
- 数据仓库哇解决方案概述.ppt
- 数据仓库与商业智能系统建六设可行性研究思路.ppt
- 数据的输入输出及文行件的读写.ppt
- 数据分析基本原理介绍(基于版excel).ppt
- 数据分析与图表呈现的金原则、方法与样式.ppt
- 数据管理之we额b数据管理.pptx
- 数据结等构—队列及其应用.ppt
- 河北盐山中学等校2025-2026学年上学期高三一模化学试卷(含解析).docx
- 河北正定中学2025-2026学年高一上学期期末考试物理试卷(含解析).docx
- 河北张家口市怀安县2025-2026学年第一学期期末教学综合评价八年级地理试卷(含解析).docx
- 河南安阳市殷都区2025-2026学年第一学期期末教学质量检测七年级地理试卷(含解析).docx
- 河南安阳市滑县2025一2026学年第一学期期末学业质量监测八年级地理试题(含解析).docx
- 河南安阳市林州市2025-2026学年上学期期末考试高一政治试题(含解析).docx
- 河南焦作市武陟县第一中学2025-2026学年高一上学期1月月考语文试卷(含解析).docx
- 河南济源市2025-2026学年上学期期末学业质量调研七年级历史试卷(含解析).docx
- PICC导管并发症的紧急处理与护理.pptx
- 河南鹤壁市2025-2026学年高二上学期期末考试生物试题(含解析).docx
原创力文档

文档评论(0)