在线索二叉树中找前驱和后继

简介: 在线索二叉树中找前驱和后继

一、线索二叉树找前驱和后继

(一)中序线索二叉树

1. 中序线索二叉树找中序后继

在这里插入图片描述

//找到以P为根的子树中,第一个被中序遍历的结点
ThreadNode *Firstnode(ThreadNode *p){
    //循环找到最左下结点(不一定是叶结点)
    while(p-> == 0) p=p->lchild;
    return p;
}
//在中序线索二叉树中找到结点p的后继结点
ThreadNode *Nextnode(ThreadNode *p){
    //右子树最左下结点
    if(p->rtag == 0) return Firstnode(p->rchild);
    else return p->rchild;//rtag==1直接返回后继线索
}

//对中序线索二叉树进行中序遍历(利用线索实现的非递归算法)
void Inorder(ThreadNode *T){
    for(ThreadNode *p = Firstnode(T);p!=NULL;p=Nextnode(p))
        visit(p);
}
123456789101112131415161718
  • 空间复杂度:O(1)

2. 中序线索二叉树找中序前驱

在这里插入图片描述

//找到以P为根的子树中,最后一个被中序遍历的结点
ThreadNode *Lastnode(ThreadNode *p){
    //循环找到最右下结点(不一定是叶结点)
    while(p->rtag == 0) p = p->rchild;
    return p;
}
//在中序线索二叉树中找到结点p的前驱结点
ThreadNode *Prenode(ThreadNode *p){
    //左子树中最右下结点
    if(p->ltag == 0) return Lastnode(p -> lchild);
    else return p->lchild;//ltag==1直接返回前驱线索
}

//对中序线索二叉树进行逆向中序遍历
void RevInorder(ThreadNode *T){
    for(ThreadNode *p = LastNode(T); p!=NULL ; p=Prenode(p))
        visit(p);
}
123456789101112131415161718

(二)先序线索二叉树

1. 先序线索二叉树找先序后继

在这里插入图片描述

2. 先序线索二叉树找先序前驱

在这里插入图片描述
在这里插入图片描述

(三)后序线索二叉树

1. 后序线索二叉树找后序前驱

在这里插入图片描述

2. 后序线索二叉树找后序后继

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章
IEEE 754规格化浮点数所能表示的最大值和最小值
IEEE 754规格化浮点数所能表示的最大值和最小值
5291 1
IEEE 754规格化浮点数所能表示的最大值和最小值
|
存储 算法 Unix
文件系统基础 (二)——文件的物理结构
文件系统基础 (二)——文件的物理结构
1185 1
|
安全 算法 数据可视化
工厂人员定位管理系统:提升生产效率、保障作业安全
在智能制造与工业4.0背景下,工厂人员定位管理系统成为提升生产效率和保障作业安全的关键工具。本文详解该系统的核心功能,包括实时定位、历史轨迹回放、巡更打卡、离岗警告及超员/超时提醒,展示其智能化、高效化和安全化的全面优势。通过高精度定位基站与智能算法,系统不仅优化了生产流程,还有效预防了安全事故,助力企业实现高效、智能的生产管理。维小帮提供相关技术文档与专业咨询,助您探索更智能的生产管理之道。
708 11
|
IDE 开发工具 C语言
C++一分钟之-嵌入式编程与裸机开发
通过这些内容的详细介绍和实例解析,希望能帮助您深入理解C++在嵌入式编程与裸机开发中的应用,提高开发效率和代码质量。
475 13
|
Ubuntu Linux Docker
Ubuntu 18.04 安装Docker实战案例
关于如何在Ubuntu 18.04系统上安装Docker的实战案例,包括安装步骤、配置镜像加速以及下载和运行Docker镜像的过程。
2361 3
Ubuntu 18.04 安装Docker实战案例
|
存储 人工智能 Java
ChatGPT API接口编程基础与使用技巧
ChatGPT API接口编程基础与使用技巧
1542 0
|
人工智能 JSON 自然语言处理
GPTs 应用开发:使用 GPT Builder 创建自己的 GPTs 应用(上)
GPTs 应用开发:使用 GPT Builder 创建自己的 GPTs 应用
1039 2
|
运维 监控 Java
Spring Boot应用的性能监控与优化指南
Spring Boot应用的性能监控与优化指南
计算机网络——数据链路层-封装成帧(帧定界、透明传输-字节填充,比特填充、MTU)
计算机网络——数据链路层-封装成帧(帧定界、透明传输-字节填充,比特填充、MTU)
1329 0
|
安全 网络协议 网络安全
【Python】已解决:pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool (host=’ files. pyth
【Python】已解决:pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool (host=’ files. pyth
2282 0

热门文章

最新文章