美文网首页
5.5 遍历二叉树和线索搜索树

5.5 遍历二叉树和线索搜索树

作者: shtonyteng | 来源:发表于2022-08-28 07:54 被阅读0次

深度遍历

void recurve(Node * ptr){
  if (null==ptr){
    return;
  }
  //前序 access(ptr)
  recurve(ptr->left);
  //中序 access(ptr)
  recurve(ptr->right);
  //后序 access(ptr)
}

前序遍历

中序遍历

后序遍历

广度遍历

前序+中序 / 后序+中序 可以构建二叉树

算法

建立二叉树

复制二叉树

计算深度

求节点总数

求叶子节点总数

线索搜索树

利用二叉链表的空指针域

具有n个节点的二叉链表,一共有2n个指针域,因为n个节点有n-1个孩子,即2n个指针域中,剩余指针域为 2n-(n-1)=n+1、
如果某个节点左孩子为空,则指向前驱,如果右孩子为空,则指向后继。这种改变指向的指针称之为“线索”。加上线索的二叉树称之为线索二叉树。按照某种遍历顺序使其变为线索二叉树的过程称之为“线索化”。
为了区分指针指向孩子还是指向前驱或后继,每个节点增加标志语ltag和rtag。tag为0则指向孩子,为1则指向前驱或后继。

typedef struct{
  TElementType data;
  int lTag,rTag;
  Node * l,*r;
} Node;

相关文章

  • 线索二叉树操作

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

  • 一般二叉树普通二叉树,前、中、后序遍历以及搜索 顺序存储二叉树将数组以树的思想标识,包括前、中、后续遍历 线索化二...

  • javascript线索化二叉树

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

  • 树,二叉树,搜索树

    树,二叉树,搜索树 资料 二叉搜索树 Demo 树的遍历 Demo 题目 ◎ 二叉树的中序遍历 ◎ 二叉树...

  • 数据结构与算法13-线索二叉树

    定义 在二叉树的结点上加上线索的二叉树称为线索二叉树,对二叉树以某种遍历方式(如先序、中序、后序或层次等)进行遍历...

  • 数据结构与算法[线索化二叉树]

    在二叉树的结点上加上线索的二叉树称为线索二叉树,对二叉树以某种遍历方式(如先序、中序、后序或层次等)进行遍历,使其...

  • 二叉树—线索二叉树

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

  • 二分搜索树的遍历

    二分搜索树的遍历和二叉树的遍历是一致的(二分搜索树的实质本身就是一棵二叉树),直接使用二叉树的遍历即可.大一的时候...

  • 2019 算法面试相关(leetcode)--树、二叉树、二叉搜

    翻转二叉树二叉树的前序遍历二叉树的中序遍历二叉树的后序遍历验证二叉搜索树二叉树的最近公共祖先二叉搜索树的最近公共祖...

  • 理解线索二叉树

    原链接:理解线索二叉树|CloudWong 线索二叉树原理 遍历二叉树的其实就是以一定规则将二叉树中的结点排列成一...

网友评论

      本文标题:5.5 遍历二叉树和线索搜索树

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