牛客网 KY11 二叉树遍历

简介: 牛客网 KY11 二叉树遍历

1.解题思路

该题需要提供两个接口,一个是根据前序构造二叉树的接口,一个是中序遍历接口

2.代码实现

2.1根据前序构造二叉树的接口

因为’#‘就代表空,所以如果遇到’#'时,直接返回即可.

struct BinaryNode* TreeCreate(char *a,int *i)
{
    if(a[*i]=='#')
    {
     (*i)++;
     return NULL;
    }
    struct BinaryNode*root=(struct BinaryNode*)malloc(sizeof(struct BinaryNode));
    root->val=a[*i];
    (*i)++;
    root->left=TreeCreate(a,i);
    root->right=TreeCreate(a,i);
    return root;
}

2.2中序遍历接口

void Inorder(struct BinaryNode*root)
{
   if(root==NULL)
   return;
   Inorder(root->left);
   printf("%c ",root->val);
   Inorder(root->right);
}

2.3总体代码

#include <stdio.h>
typedef struct BinaryNode
{
    char val;
    struct BinaryNode*left;
    struct BinaryNode*right;
}BT;
struct BinaryNode* TreeCreate(char *a,int *i)
{
    if(a[*i]=='#')
    {
     (*i)++;
     return NULL;
    }
    struct BinaryNode*root=(struct BinaryNode*)malloc(sizeof(struct BinaryNode));
    root->val=a[*i];
    (*i)++;
    root->left=TreeCreate(a,i);
    root->right=TreeCreate(a,i);
    return root;
}
void Inorder(struct BinaryNode*root)
{
   if(root==NULL)
   return;
   Inorder(root->left);
   printf("%c ",root->val);
   Inorder(root->right);
}
int main()
 {
  char a[101];
  gets(a);
   int pi=0;
  struct BinaryNode*root= TreeCreate(a,&pi);
  Inorder(root);
    return 0;
}

结尾:今天的分享到此结束,喜欢的朋友如果感觉有帮助可以点赞三连支持,咱们共同进步!

目录
相关文章
|
机器学习/深度学习 监控 TensorFlow
使用Python实现深度学习模型:智能农业病虫害检测与防治
使用Python实现深度学习模型:智能农业病虫害检测与防治
511 65
|
开发框架 前端开发 C#
使用WPF开发自定义用户控件,以及实现相关自定义事件的处理
使用WPF开发自定义用户控件,以及实现相关自定义事件的处理
|
JSON JavaScript 前端开发
|
C语言
【C语言】写入访问权限冲突
【C语言】写入访问权限冲突
459 0
|
编译器 C++
【C++】类和对象③(类的默认成员函数:赋值运算符重载)
在C++中,运算符重载允许为用户定义的类型扩展运算符功能,但不能创建新运算符如`operator@`。重载的运算符必须至少有一个类类型参数,且不能改变内置类型运算符的含义。`.*::sizeof?`不可重载。赋值运算符`=`通常作为成员函数重载,确保封装性,如`Date`类的`operator==`。赋值运算符应返回引用并检查自我赋值。当未显式重载时,编译器提供默认实现,但这可能不足以处理资源管理。拷贝构造和赋值运算符在对象复制中有不同用途,需根据类需求定制实现。正确实现它们对避免数据错误和内存问题至关重要。接下来将探讨更多操作符重载和默认成员函数。
|
机器学习/深度学习 自然语言处理 并行计算
基于Transformer模型的自然语言处理新进展
基于Transformer模型的自然语言处理新进展
185 0
|
C++ Windows
手把手教你安装 Visual Studio 2022 及其简单使用
手把手教你安装 Visual Studio 2022 及其简单使用
2184 0
BackTrader 中文文档(十七)(3)
BackTrader 中文文档(十七)
123 0
|
存储 数据建模 索引
来自钉钉群的问题——Elasticsearch 如何实现文件名自定义排序?
来自钉钉群的问题——Elasticsearch 如何实现文件名自定义排序?