首页 > 编程语言 >KY11 二叉树遍历C++

KY11 二叉树遍历C++

时间:2024-01-24 20:33:40浏览次数:28  
标签:遍历 struct tree tnode C++ 二叉树 root KY11 build

这个题目思路其实就是先序遍历的变形。

相当于沿着先序遍历的顺序跟着构建二叉树就行。然后中序遍历这个树。

#include<iostream>
#include<string>
using namespace std;

struct  tnode{
    char data;
    struct tnode* left;
    struct tnode* right;
};
typedef struct tnode tree;

void inorder(tree* root){
    if(!root) return;
    inorder(root->left);
    cout << root->data <<' ';
    inorder(root->right);
}

tree* build(int &i,string s){
    if(s[i]=='#') {
        i++;
        return NULL;
    }
    tree* root=new tree;
    root->data=s[i++];
    root->left=build(i,s);
    root->right=build(i,s);
    return root;
}

int main(){
    string s;
    while(cin >> s){
        int i=0;
        tree* root=build(i,s);
        inorder(root);
        cout <<'\n';
    }
    return 0;
}

结果:

标签:遍历,struct,tree,tnode,C++,二叉树,root,KY11,build
From: https://www.cnblogs.com/llllmz/p/17985799

相关文章

  • KY212 二叉树遍历C++
    思路是先构造出树,然后在后序遍历整个树。#include<iostream>#include<string>usingnamespacestd;structTnode{chardata;structTnode*left;structTnode*right;};typedefstructTnodeTree;Tree*build(stringpre,inth1,intt1,stringin,inth2......
  • C++ STL Template Traits 技术
    C++的traits技术,是一种约定俗称的技术方案,用来为同一类数据(包括自定义数据类型和内置数据类型)提供统一的类型名(traits),这样可以统一的操作函数,例如advance(),swap(),encode()/decode()等。问题描述首先来看traits技术可以解决什么问题,我们拥有自定义类型Foo,Bar,以及编译......
  • 【C++入门到精通】C++入门 —— 深浅拷贝函数
     目录拷贝函数浅拷贝拷贝构造函数深拷贝拷贝构造函数总结 前言Linux专栏链接)大家可以关注一下,后面我会一点一点的更新的。大家坐稳扶好,要开车了!!!拷贝函数拷贝构造详细介绍)        是C++中的一个特殊成员函数,用于创建对象的副本。它的作用是通过使用已有对象的属性值来初始......
  • 【C++入门到精通】C++入门 —— 深浅拷贝函数
     目录拷贝函数浅拷贝拷贝构造函数深拷贝拷贝构造函数总结 前言Linux专栏链接)大家可以关注一下,后面我会一点一点的更新的。大家坐稳扶好,要开车了!!!拷贝函数拷贝构造详细介绍)        是C++中的一个特殊成员函数,用于创建对象的副本。它的作用是通过使用已有对象的属性值来初始......
  • Java和C++的区别:传闻这个问题能分辨你是不是科班出生?
    大家好,欢迎来到程序视点!我是小二哥。今天听到一个面试的小伙伴分享了他的面试经历,说面试官第一个问题是:Java语言和C++语言的区别有哪些?坊间流传,早些年间这个问题能区分一个Java程序员是不是科班出身!小伙伴怎么认为呢?缘由由于Java本来就是从C++衍生出来的,而且Java语言......
  • C++缺省参数
    缺省参数什么是缺省参数呢?简单来说,就是函数的参数可以给一个默认值,如果不给这个函数传递参数的时候那么改参数就是默认值,否则参数就是你指定的参数缺省参数分为全缺省和半缺省全缺省参数:所有的参数都有默认值voidfunc(inta=10,intb=20,intc=30){cou......
  • 图论---可视区域获取(C++)
    1.开源库获取   地址:http://en.wikipedia.org/wiki/Visibility_graph2.使用使用处包含头文件 #include"visilibity.hpp"即可,以下面在Qt中使用为例:1/*2=========AVisiLibityExampleProgram=========3Thisprogramprovidesatextinterfacewhic......
  • c++学习由浅入深刷题指南
    新手村任何一个伟大的目标,都有一个微不足道的开始。洛谷的第一个任务勇敢的迈出第一步,了解下语言和洛谷。跟着书本和老师走,不会难的。P1000P1001P1421P1425顺序与分支计算机的智能性开始得以体现,因为计算机能够根据不同的条件选择了。P1422P1085P1089P1909循环!......
  • C++ 项目结构
    1.C++项目结构C++项目包含几千个文件,当构建项目时,需要选择编译哪些文件,选择哪种工具编译这些文件组织称可执行文件1.1编译计算机处理器只能执行底层二进制指令,编译器需要将C++源码转换成处理器能执行的指令集。编译器配置的内存称为栈帧(Stackframe),配置内存传递数......
  • 【干货】VS Code中配置C/C++运行环境
    1、安装MinGW-w64有个很重要的工具:MinGW-w64,里面包含了在windows上编译调试C++代码所需要的所有环境(以及一些其他的小工具包,例如linux风格的命令ls,将这个包解压缩后的路径添加到系统环境变量PATH中就可以用了)。他的具体的发布和下载位置:Releases·skeeto/w64devkit(github.co......