首页 > 其他分享 >7-1 二叉树遍历应用

7-1 二叉树遍历应用

时间:2022-10-25 00:00:07浏览次数:53  
标签:遍历 应用 idx BiTNode 二叉树 str root

读入用户输入的一串字符串,将字符串按照先序遍历建立一个二叉树。 其中“#”表示的是空格,代表空树。再对建立好的二叉树进行中序遍历,输出遍历结果。

#include<iostream>
#include<string>
#include<stdio.h>
#include<stdlib.h>
using namespace std;

typedef struct BiTNode
{
    char data;
    struct BiTNode  *lchild,*rchild;
}BitNode;

BitNode* creatTree(char* str , int *idx)
{
    if(str[*idx] != '#')
    {
        BiTNode* root = (BiTNode*)malloc(sizeof(BitNode));
        root->data = str[*idx];
        ++(*idx);
        root->lchild = creatTree(str , idx);
        ++(*idx);
        root->rchild = creatTree(str , idx);
        return root;
    }
    else{
        return NULL;
    }
}
void MidPrint(BiTNode *root)
{
    if(root)
    {
        MidPrint(root->lchild);
        cout<<root->data<<" ";
        MidPrint(root->rchild);
    }
}
int main()
{
    char str[101] = {0};
    scanf("%s", str);
    int idx = 0;
    
    BiTNode* root = creatTree(str , &idx);
    MidPrint(root);
    cout<<endl;
    return 0;
}

 

标签:遍历,应用,idx,BiTNode,二叉树,str,root
From: https://www.cnblogs.com/fan-wang/p/16823527.html

相关文章

  • 实验7:基于REST API的SDN北向应用实践
    基础要求1.编写Python程序,调用OpenDaylight的北向接口实现以下功能利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight;下发指令删除s1上的流表数据#delet......
  • 实验7:基于REST API的SDN北向应用实践
    (一)基本要求1.编写Python程序,调用OpenDaylight的北向接口实现以下功能调用OpenDaylight的北向接口获取拓扑信息importrequestsasrqfromrequests.authimportHTTP......
  • 二叉树的四种遍历顺序
    题目102二叉树的层序遍历思路用队列实现层序遍历。代码#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,righ......
  • 实验7:基于REST API的SDN北向应用实践
    (一)基本要求编写Python程序,调用OpenDaylight的北向接口实现以下功能。(1)利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight。(2)下发指令删除s1上的流表数据#!/us......
  • 完全二叉树的节点数
    222.完全二叉树的节点个数中文语境和英文语境似乎有点区别,我们说的完全二叉树对应英文CompleteBinaryTree,没有问题。但是我们说的满二叉树对应英文PerfectBinaryTr......
  • 8.盒模型应用
    盒模型应用改变宽高范围默认情况下,width和height设置的是内容盒宽高。页面重构师:将psd文件(设计稿)制作为静态页面衡量设计稿尺寸的时候,往往使用的是边框盒,但设置wi......
  • 力扣 114. 二叉树展开为链表-原地算法(O(1) 额外空间)详解
    114.二叉树展开为链表给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而......
  • 【二叉树】两棵二叉搜索树中的所有元素
    0x00题目给你​​root1​​​和​​root2​​​这两棵二叉搜索树请你返回一个列表其中包含​​​两棵树​​​中的所有整数并按​​升序​​排序0x01思路二叉搜......
  • 【二叉树】删点成林
    0x00题目给出二叉树的根节点​​root​​​树上每个节点都有一个不同的值如果节点值在​​to_delete​​中出现我们就把该节点从树上​​删去​​最后得到一个森林(......
  • 【二叉树】二叉树中的最长交错路径
    0x00题目给你一棵以​​root​​为根的二叉树,二叉树中的交错路径定义如下:选择二叉树中​​任意​​​节点和一个方向(​​左​​​或者​​右​​​)如果前进方向为​​......