首页 > 其他分享 >144-18 中序创建线索二叉树

144-18 中序创建线索二叉树

时间:2023-10-16 19:35:25浏览次数:54  
标签:pre lchild 144 18 Tree 二叉树 rchild NULL InThread

同理,先序创建线索二叉树只需要将InThread中的某部分调换位置

死记硬背

#include <stdio.h>
#include <stdlib.h>

typedef struct node{
    int data;
    struct node *lchild,*rchild;
    int lefttag,righttag; 
}TreeNode,*Tree;

void CreateTree(Tree &T)        //先序创建二叉树,中序后序创建和递归遍历一样,只修改位置 
{
    int x;
    scanf("%d",&x);
    if(x==-1)
    {
        T=NULL;
        return;    
    }
    else
    {
        T=(TreeNode*)malloc(sizeof(TreeNode));
        T->data=x;
        T->lefttag=0;
        T->righttag=0;
        printf("输入%d的左结点:",x);
        CreateTree(T->lchild);
        printf("输入%d的右结点:",x);
        CreateTree(T->rchild);
    }
}

void InThread(Tree &p,Tree &pre)
{
    if(p!=NULL)
    {
        InThread(p->lchild,pre);
        if(p->lchild==NULL)
        {
            p->lchild=pre;
            p->lefttag=1;
        }
        if(pre!=NULL&&pre->rchild==NULL)
        {
            pre->rchild=p;
            pre->righttag=1;
        }
        pre=p;
        InThread(p->rchild,pre);
    }
}

void CreateThread(Tree &T)
{
    Tree pre=NULL;
    if(T!=NULL)
    {
        InThread(T,pre);
        pre->lchild=NULL;
        pre->lefttag=1;
    }
}

int main()
{
    Tree T;
    CreateTree(T);
    CreateThread(T);
    return 0;    
} 

 

标签:pre,lchild,144,18,Tree,二叉树,rchild,NULL,InThread
From: https://www.cnblogs.com/simpleset/p/17768169.html

相关文章

  • CF1886
    A给你一个正整数\(n\),问是否存在\(3\)个正整数\(a,b,c\)满足\(a+b+c=n\)且\(a,b,c\not\equiv0\pmod{3}\)。分类讨论:如果\(n\not\equiv0\pmod{3}\):若\(n\le5\)则无解,否则可以拆分成\(1,2,n-3\)。否则:若\(n\le9\)则误解,否则拆分成\(1,4,n-5\)。思路是......
  • Week 18
    Week18目录Week18801喵喵序列(线段树)802漂亮数803真假字符串804走不出的迷宫805最长同于子数组806互质(欧拉筛)807排队901最短路径计数902最后的舞会903倒数第n个字符串801喵喵序列(线段树)没太看懂、、这周刷一下线段树专题再来、、#include<bits/stdc++.h>using......
  • 16核22线程!酷睿Ultra 9 185H曝光:英特尔革命性架构转变
    在近日的英特尔ON技术创新峰会上,英特尔公布了代号为MeteorLake的第一代酷睿Ultra处理器的最新消息。据英特尔介绍,该处理器将于今年12月14日正式上市,预计搭载酷睿Ultra移动处理器的首批笔记本将在今年底首发,并且在春节前后大量出货。和经典的i3、i5、i7以及i9定位类似,第一代酷......
  • DevExpress.18.1使用
    1.DevExpress.XtraGrid.Views.Tile.TileView 使用DataTable作为数据源时,默认选择第一行使用  tile_Reason.Columns.View.FocusedRowHandle=0; 2.绑定数据源后,能单击能查到数据,但页面不显示,需要绑定控件的_ItemCustomize方法privatevoidtile_Reason_ItemCustomize(o......
  • CF1873E Building an Aquarium 题解
    这题看到第一眼就是二分。单调性二分最关键的东西是单调性在哪。单调性是如果高度越高,需要的水就越多,高度越矮,要用的水越少。不难得出代码:check函数:intcheck(intmid){ intsum=0; for(inti=1;i<=n;i++){ sum+=max(0ll,mid-a[i]); } if(sum<=x)returnsum; elsere......
  • AtCoder Beginner Contest 180 F Unbranched
    洛谷传送门AtCoder传送门首先进行一个容斥,把连通块最大值\(=K\)变成\(\leK\)的方案数减去\(\leK-1\)的方案数。考虑dp,设\(f_{i,j}\)表示当前用了\(i\)个点,\(j\)条边。转移即枚举其中一个连通块的大小\(k\)。为了不算重,我们强制让这个连通块包含点\(1\),类......
  • 186_Power BI Desktop 支持计算组编辑
    186_PowerBIDesktop支持计算组编辑一、背景今天是2023年10月16日,基本上是PowerBI每月更新的时间点了。打开看到PowerBI果然已经更新到了2023年10月版本:2.122.746.0(23.10)(x64)这里提一下,我使用的是商店版的PowerBIDesktop,每次更新随着系统更新就更新了,免去每次......
  • 考场(CSP模拟56联测18 )
    T1难道是。。。。淀粉质????这不是CSP-S模拟吗,哪来的淀粉质QAQ。不确定,再想想T2可以用矩阵快速幂优化一下,然后就拿到暴力分了。。。T3可以写\(N^2\)暴力,所以\(N^2\)暴力的分在哪??!!!,只有\(1e4\),完蛋了,没有暴力T2(重复1)再去看看\(T2\)吧。再次看\(T2\)用个屁矩阵快速幂,,直接......
  • BitBake使用攻略--从HelloWorld讲起 (转载自:https://www.cnblogs.com/chegxy/p/1571811
    目录写在前面1.什么是BitBake2.BitBake的安装3.使用BitBake构建一个HelloWorld工程后续 写在前面《BitBake使用攻略》系列文章将从今天开始不定时的更新,主要讲解BitBake的背景,基本语法,功能及其命令等知识,旨在为即将从事Yocto项目和OpenEmbedded项目的同学做一些预......
  • Programming abstractions in C阅读笔记:p179-p180
    《ProgrammingAbstractionsInC》学习第60天,p179-p180总结。一、技术总结1.palindrome(回文)(1)包含单个字符的字符串(如"a"),或者空字符串(如"")也是回文。(2)示例:“level”、"noon"。2.predicatefunction(1)predicate的意思pre-("forth")+*deik-("show"),“t......