线索二叉树

embedded/2024/9/25 22:24:31/

输入

输入的第一行包含单独的一个数字T,表示测试序列的数目;

以下每一行为一个测试序列,测试序列是按先序序列输入字符,如果节点没有左或右孩子,则输入用空格表示,最后用一个空格结束一行的输入。

输出

对应每个测试序列,采用中序遍历二叉线索树,输出一行

输入样例 1  点击复制

2
ABD##E##CG##F##  
*+a##b##-c##d##

输出样例 1

DBEAGCF
a+b*c-d
#include <stdio.h>
#include <stdlib.h>
#define elemtype char
typedef struct node { //线索二叉树elemtype data;struct node*lchild, *rchild; //左右孩子指针int ltag, rtag; //左右线索标志
} *threadtree, threadnode;void visit(threadnode*T){//输出一个节点printf("%c",T->data);}
int u=0;
char chh[500];
void CreateThreadTree(threadnode** T) {char ch = chh[u++];if (ch == '#') {*T = NULL;return;} else {*T = (threadtree)malloc(sizeof(threadnode));(*T)->ltag = (*T)->rtag = 0; // 存在左右孩子(*T)->data = ch;CreateThreadTree(&((*T)->lchild));CreateThreadTree(&((*T)->rchild));return;}
}
void InOrder(threadnode*T) {//中序遍历线索二叉树if (T) {if (T->ltag != 1)InOrder(T->lchild);visit(T);if(T->rtag != 1)InOrder(T->rchild);}
}int main() {int t;scanf("%d",&t);getchar();while(t--){u=0;scanf("%s",chh);threadtree T=(threadtree)malloc(sizeof(threadnode));CreateThreadTree(&T);InOrder(T);printf("\n");}
}


http://www.ppmy.cn/embedded/35043.html

相关文章

【go项目01_学习记录05】

学习记录 1 依赖管理 Go Modules1.1 弃用 $GOPATH1.2 Go Modules 日常使用1.2.1 初始化生成go.mod文件1.2.2 Go Proxy代理1.2.3 go.mod文件查看1.2.4 go.sum文件查看1.2.5 indirect 含义1.2.6 go mod tidy 命令1.2.7 清空 Go Modules 缓存1.2.8 下载依赖1.2.9 所有 Go Modules …

鸿蒙开发接口Ability框架:【@ohos.application.FormExtension (FormExtension)】

FormExtension FormExtension模块提供了FormExtension卡片扩展相关接口。 说明&#xff1a; 本模块首批接口从API version 9开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 本模块接口仅可在Stage模型下使用。 导入模块 import FormExtension …

【数据分析面试】36.SAAS公司邮件营销策略分析(业务分析)

题目 假设你在一个B2B SAAS公司营销团队工作。本季度即将结束&#xff0c;但当前收入距离预期目标还差10%。营销团队的一个高管要求负责电子邮件营销的人向所有客户群发邮件&#xff0c;要求他们购买更多产品。这是个好主意吗&#xff1f;为什么&#xff1f; 提示1&#xff1…

学习嵌入式可以胜任哪一些行业?

学习嵌入式究竟可以在哪些行业中胜任呢&#xff1f;嵌入式技术的应用范围极为广泛&#xff0c;在众多领域中都发挥着至关重要的作用&#xff0c;这也为学习嵌入式的人提供了极为丰富的职业机会。 就拿机器人行业来说吧&#xff0c;嵌入式技术是机器人能够实现各种复杂功能的关…

面试中算法(使用栈实现队列)

使用栈来模拟一个队列&#xff0c;要求实现队列的两个基本操作:入队、出队。 栈的特点&#xff1a;先入后出&#xff0c;出入元素都是在同一端&#xff08;栈顶&#xff09;。 队列的特点&#xff1a;先入先出&#xff0c;出入元素是在两端&#xff08;队头和队尾)。 分析&…

深度学习简介

什么是深度学习 机器学习是实现人工智能的一种途径 深度学习是机器学习的一个子集&#xff0c;也就是说深度学习是实现机器学习的一种方法。 传统机器学习算术依赖人工设计特征&#xff0c;并进行特征提取&#xff0c;而深度学习方法不需要人工&#xff0c;而是依赖算法自动提…

什么是X电容和Y电容?

先补充个知识&#xff1a; 一、什么是差模信号和共模信号 差模信号&#xff1a;大小相等&#xff0c;方向相反的交流信号&#xff1b;双端输入时&#xff0c;两个信号的相位相差180度 共模信号&#xff1a;大小相等。方向相同。双端输入时&#xff0c;两个信号相同。 二、安规…

【图像特征点匹配】

图像特征点匹配 图像特征点匹配是计算机视觉中的一项关键技术,它涉及在两个或多个图像之间寻找并匹配具有独特属性的点,这些点被称为特征点。 立体视觉:通过匹配同一场景的不同视角图像中的特征点,可以重建场景的三维结构。物体识别:通过匹配物体表面的特征点,可以识别和…