美文网首页数据结构和算法分析
数据结构-线索二叉树

数据结构-线索二叉树

作者: 小明同学机器人 | 来源:发表于2020-02-20 16:01 被阅读0次
定义
typedef struct BiThrNode
{
  TelemType data;
  struct BitThrNode *lchild,*rchild;
  int  lRag,rtag;
}BiThrNode,*BiThrTree;
  • 以上述结点结构构成的二叉链表作为二叉树的存储结构,叫做线索链表,其中指向结点前驱和后继的指针,叫做线索。加上线索的二叉树就是线索二叉树
变量 value=0 value=1
lTag lchild域指示结点的左孩子 lchild域知识结点的前驱
rTag rchild域指示结点的右孩子 rchild域指示结点的后继
  • 结点前驱: 遍历左子树时最后访问的结点。
  • 结点后继: 遍历右子树时访问的第一个结点。
    将结点为p的子树中序线索化
BiThrTree pre;
void InThreading(BiThrTree p) {
    if (p) {
        InThreading(p->lchild);  //讲左子树进行线索化
        {
            if (!p->lchild) {  //如果左子树为空
                p->lRag = 1;   //p加上左线索
                p->lchild = pre;//p的左孩子的指针指向前驱
            } else {
                p->lRag = 0;   //p的左子树不为空 
            }
            if (!pre->rchild) {  //pre 结点加右线索
                pre->rtag = 1;   
                pre->rchild = p;     //pre 有孩子指向后继
            } else {
                p->rtag = 0;
            }
            pre = p;   //保持pre指向p的前驱,反之后继
            InThreading(p->rchild); //讲右子树进行线索化
        }
    }
}

相关文章

  • 线索二叉树操作

    树节点 创建中序线索二叉树 遍历中序线索二叉树 创建前序线索二叉树 遍历前序线索二叉树 参考:https://bl...

  • 数据结构--树

    树 树是很常见而且被广泛利用的数据结构,而且种类繁多,包括一般二叉树、完全二叉树、满二叉树、线索二叉树、二叉排序树...

  • 数据结构与算法--线索二叉树及其前序、中序遍历

    数据结构与算法--线索二叉树及其前序、中序遍历 二叉树如果某个结点没有左孩子或右孩子,则这个域就为空。如node....

  • 二叉树—线索二叉树

    1、线索二叉树的引入 在二叉树的结点上加上线索的二叉树称为线索二叉树,对二叉树以某种遍历方式(如先序、中序、后序或...

  • javascript线索化二叉树

    定义二叉树创建方法 对二叉树进行中序线索化 遍历线索二叉树 测试

  • 数据结构线索二叉树

    线索二叉树构成 线索化的节点 实现

  • 数据结构与算法分析四 树(续)

    ** 顺序存储 ** 线索化二叉树 线索化代码实现

  • 2018-11-20

    数据结构 复习了森林转换成二叉树,并写出先序中序序列和后续线索,学习哈夫曼树的构造

  • 数据结构与算法

    数据结构线性与非线性数组、链表、栈、队列、树、图 树二叉树:顺序,最优、线索、搜索,平衡多路查找树3、排序算法4、...

  • 数据结构(一)数据结构概述

    数据结构大致包含以下几种存储结构: 线性表,还可以细分为顺序表、链表、栈、队列; 树结构,包括普通树,二叉树,线索...

网友评论

    本文标题:数据结构-线索二叉树

    本文链接:https://www.haomeiwen.com/subject/unjyfhtx.html