class Threade{BinaryTree root;//记录根节点,用于遍历BinaryTree pre;//pre指针,用于线索化,表示上一个节点Threade(BinaryTree node){this.root = node;ThreadeNodes(node);}public void ThreadeNodes(BinaryTree node){if(node == null)return;ThreadeNodes(node.left);//线索化左节点/*** 线索化操作,pre与node相互配合线索化*/if(node.left == null){node.left = pre;node.lefttype = 1;}if(pre!=null&&pre.right==null){pre.right = node;pre.righttype = 1;}pre = node;ThreadeNodes(node.right);//线索化右节点}public void ThreadeTraverse(){BinaryTree node = root;//将根节点给nodewhile(node!=null){while(node.lefttype == 0)node = node.left;//中序遍历创建,如果是左孩节点,就继续System.out.println(node.val);while(node.righttype == 1){//如果right表示右节点,继续node = node.right;System.out.println(node.val);//循环输出}node = node.right;}}
}
class BinaryTree{int val;BinaryTree left;BinaryTree right;int lefttype;//左指针类型,0表示指向左节点,1表示指向前驱节点int righttype;//右指针类型,0表示指向右节点,1表示指向后继节点BinaryTree(){}BinaryTree(int val){this.val = val;}}

Java:中序线索化二叉树及遍历相关推荐

  1. 数据结构2:中序线索化二叉树为什么要通过pre设置后继结点

    在听尚硅谷韩顺平老师课程的时候这个地方没有理解,先把java中序线索化二叉树代码附上: private HeroNode pre = null;//在递归线索化,pre总是保留前一个结点 /**** ...

  2. Java实现前中后序线索化二叉树以及遍历

    文章目录 一.线索化二叉树的原理 二.构建线索化二叉树 三.代码实现线索二叉树 一.线索化二叉树的原理 在前面介绍二叉树的文章中提到,二叉树可以使用两种存储结构:顺序存储和链式存储,在使用链式存储时, ...

  3. 后序线索化二叉树及遍历(图解)

    上一篇博客对于 二叉树线索化以及线索化的先序.中序.后序遍历做了比较详细的描述 写在前面 其实,我还是很想把本篇博客和二叉树的线索化写在一块的,但是考虑到可能这博客的内容就看足以超过了上一篇的篇幅,考 ...

  4. node 获取表单数据 为空_程序员:数据结构和算法,中序线索化二叉树

    1.中序线索化二叉树   创建如上的二叉树,线索化二叉树时,根据指定的遍历方式得到的节点的访问顺序,一个节点前面的节点,叫做前驱节点,一个节点后面的节点,叫做后继节点.   线索化二叉树的规则:   ...

  5. 中序线索化二叉树c语言实现

    ```c #include<stdio.h>//首先定义一个遍历前驱的节点ThreadNode *pre = NULL;//指向前驱节点typedef struct ThreadNode ...

  6. 线索化二叉树及其遍历

    线索化二叉树及其遍历 线索二叉树基本介绍 1.利用二叉表中空指针域,存放指向该结点在某种遍历次序下的前驱与后续节点的指针称为线索 2.这种加上了线索的二叉链表称为线索链表,相应的二叉树也称为线索二叉树 ...

  7. 数据结构: 试用判定树的方法给出在中序线索化二叉树上: (1) 如何搜索指定结点的在中序下的后继。 (2) 如何搜索指定结点的在前序下的后继。(3) 如何搜索指定结点的在后序下的后继。

    题目 试用判定树的方法给出在中序线索化二叉树上: (1) 如何搜索指定结点的在中序下的后继. (2) 如何搜索指定结点的在前序下的后继. (3) 如何搜索指定结点的在后序下的后继. 分析 这是殷人昆& ...

  8. 线索化二叉树及遍历_笔记

    线索化二叉树能够充分使用空余的left和right指针,left放前驱,right放后继指针: 一.中序线索化 1.实现思路:正常的中序思想,只不过中间实现前驱和后继节点的指向,为了确定前驱节点需要使 ...

  9. 【算法系列之线索化二叉树,前序线索化、中序线索化、后序线索化以及遍历~】

    1.何谓线索化二叉树 2.线索化二叉树的本质 3.线索化二叉树的存储结构 4.构建线索化二叉树 4.1.先序线索化 4.2.中序线索化 4.3.后序线索化 5.遍历线索化二叉树 5.1.先序遍历 先序 ...

最新文章

  1. 自动驾驶关键技术分解和流程
  2. 计算最长公共数字串个数
  3. c语言求方程组的自然数解,多元一次线性方程自然数解的算法解决办法
  4. 冬奥网络安全卫士被表彰突出贡献,探寻冬奥背后的安全竞技
  5. 创建失败_【阿里云主机】二级域名创建失败解决方法
  6. 61 MM配置-后勤发票校验-发票冻结-设置容差限制
  7. NSTimer、CADisplayLink、GCD 三种定时器的用法 —— 昉
  8. 消费者启动,允许期间报task supervisor timed out 异常,解决
  9. Bailian2808 校门外的树【基础】
  10. 阻止默认事件event.preventDefault();
  11. VMware vSphere 5.x 与 vSphere 6.0各版本功能特性对比
  12. Atitit 四种自动机 fsm pda 目录 1. 自动机可分为有限自动机、后进先出自动机、线性有界自动机、图灵机等几种。它们对语言的识别能力各不相同。 2 1.1. 抽象自动机的理论。 2 1.
  13. 词法分析器(分析C语言)
  14. js页面跳转并传递参数
  15. 3.acwing3373. 进制转换
  16. 大数据总结【第四章:Hbase】
  17. hadoop之hdfs命令
  18. Java生鲜电商平台-安全设计与架构
  19. Visual Studio 2022无法打开源文件
  20. 2021年信息系统管理工程师考试大纲

热门文章

  1. 【八】【vlc-android】vlc-vout视频流输出端源码分析
  2. ML:MLOps系列讲解之系列知识解读之完整总结系列内容(第一章~第九章)
  3. vue使用elementui实现表格中上下移动功能
  4. MySQL表连接算法
  5. Cookie、Session、Token、JWT 看一篇就够了
  6. 中专生计算机基础知识论文3000字,计算机中专毕业论文3000字
  7. 计算机1101与0100逻辑加,算术加和逻辑加分别什么意思
  8. 雷电、夜神、天天、逍遥等模拟器中找不到要下载的软件解决方法
  9. 【andriod】设备APP开发之数据就地Excel存储
  10. 杭州ALIENWARE外星人电脑(大悦城旗舰店),玩起来就是不一样