首页 > 编程语言 >算法与数据结构——二叉树遍历应用

算法与数据结构——二叉树遍历应用

时间:2022-10-21 13:12:16浏览次数:77  
标签:arr 遍历 TreeNode 二叉树 pi 数据结构 root

题目:

 

 代码:

#include <iostream>
#include <stdlib.h>
using namespace std;
typedef struct TreeNode
{
    char data;
    struct TreeNode* lchild;
    struct TreeNode* rchild;
}TreeNode;
//先序创建二叉树
TreeNode* CreateTree(char* arr,int *pi)
{
    //arr->字符串
    //pi->下标位置
    if (arr[*pi] == '#')
       return NULL;
    else
    {
       TreeNode * root = (TreeNode *)malloc (sizeof(TreeNode));
       root->data = arr[*pi];
        
       ++(*pi);
       root->lchild = CreateTree(arr,pi);
        
       ++(*pi);
       root->rchild = CreateTree(arr,pi);
        
       return root;
    } 
}
//中序遍历输出
void InOrderTraversal(TreeNode * root)
{
    if (root == NULL)
        return ;
    InOrderTraversal(root->lchild);
    cout << root->data << " ";
    InOrderTraversal(root->rchild);
}

int main()
{
     char arr[100];
     cin >> arr;
     int i = 0;
     TreeNode * root = CreateTree(arr,&i);
     InOrderTraversal(root);
     return 0;
}

参考:编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。_NTZ5bzZKdUw的博客-CSDN博客

参考:二叉树遍历(c++) - 知乎 (zhihu.com)

标签:arr,遍历,TreeNode,二叉树,pi,数据结构,root
From: https://www.cnblogs.com/sodamate/p/16813118.html

相关文章

  • 二叉树部分知识点
    关于满二叉树和完全二叉树:满二叉树:每个分支节点都存在左子树和右子树,且叶子节点在同一层完全二叉树:按层序编号,如果编号出现空档,则说明不是完全二叉树,反之则是 已知前......
  • JavaScript实现数据结构 -- 栈
    栈栈是一种==后进先出==的数据结构。JS模拟栈虽然JavaScript中没有栈,但是我们可以用数组来实现栈的功能。 //定义一个数组用来模拟栈 conststack=[]; //用数组......
  • JavaScript实现数据结构 -- 队列
    队列队列是一个先进先出的数据结构。JS模拟队列虽然JavaScript中没有队列,但是我们可以用数组来实现队列的功能。 //用数组来模拟队列 constqueue=[]; //入队 q......
  • JavaScript实现数据结构 -- 链表
    链表链表和数组一样是有多个元素组成的列表;不同的是链表元素存储不连续,用next指针连接在一起;链表的特点插入、删除不需要移动元素;不必事先分配存储空间;所需空间与长......
  • 递归和深度优先遍历
     数组全排列private void write(int[] b, ArrayList<ArrayList<Integer>> list,                       LinkedList<Integer> item) {......
  • 【收藏看】关于面试常见问题:Redis有哪些数据结构?
    面试场景  Redis作为时下最火的缓存中间件之一,面试的时候面试官肯定会问Redis的相关内容,而往往问的第一个问题就是:你知道Redis有哪几种数据结构吗?你们项目中使用......
  • 【数据结构/C语言】用链栈对整数进行升序排序
    #pragmawarning(disable:4996)#include<stdio.h>#include<stdlib.h>typedefintElemtype; typedefintStatus;typedefstructStack*SqList;typedefstructSt......
  • 【数据结构-矩阵】矩阵的相关公式推导
    目录1数组1.1一维数组1.2二维数组2对称矩阵2.1上三角部分(i≤j)2.2下三角部分(i≥j)3三角矩阵3.1上三角矩阵(i≤j的元素不全为0)3.2下三角矩阵(i≥j的元素不......
  • 递归遍历指定目录下所有文件
    /***功能描述:递归遍历指定目录下所有文件**@paramsrcFile指定文件*@Author:XHD*@Date:2022/10/20*/publicstati......
  • 颜色二叉树
    颜色二叉树一棵节点带颜色的二叉树,每个节点除了有id值,还有一个颜色变量color。每个节点的id值不同。TreeNode类定义:classTreeNode{TreeNodeleft;TreeNoderight......