首页 > 其他分享 >二叉树创建及遍历

二叉树创建及遍历

时间:2023-12-05 09:58:07浏览次数:32  
标签:遍历 temp int 创建 ch 二叉树 BiTree out

#include <stdio.h>
#include <iostream>
using namespace std;
typedef char TElemType;
typedef void Status;
typedef int ElemType;

typedef struct BiTNode {
	TElemType data;
	BiTNode* lchild, * rchild;
}BiTNode, * BiTree;

void CreateBiTree(BiTree& T) {
	char ch;
	scanf("%c", &ch);
	if (ch == '#') {
		T = NULL;
	}else {
		T = new BiTNode;
		T->data = ch;
		CreateBiTree(T->lchild);
		CreateBiTree(T->rchild);
	}
}

//中序遍历二叉树
Status InOrderTraverse(BiTree T) {
	// 二叉树非空 
	if (T){
		InOrderTraverse(T->lchild);
		cout << T->data;
		InOrderTraverse(T->rchild);
	}
}

//层序遍历二叉树
Status FloorPrint(BiTree T){
	//创建pTreeNode指针类型的指针数组
    BiTree temp[100];   
    int in = 0;
    int out = 0;

	// 先保存二叉树根节点 
    temp[in++] = T;

    while (in > out){
        if (temp[out]){
            cout << temp[out]->data;
            temp[in++] = temp[out]->lchild;
            temp[in++] = temp[out]->rchild;
        }
        out++;
    }
}

int main() {
	BiTree T;
	cout << "先序遍历输入(以##结束,需要两个#):";
	CreateBiTree(T);
	cout << "中序遍历输出:";
	InOrderTraverse(T);
	cout << endl;
	cout << "层序遍历输出:";
	FloorPrint(T);
}



标签:遍历,temp,int,创建,ch,二叉树,BiTree,out
From: https://www.cnblogs.com/mikizero/p/17876550.html

相关文章

  • # yyds干货盘点 # 有一个数据对应表,遍历df数据只要df存在对应的数据就替换掉,但是这个
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个Pandas数据处理的问题,一起来看看吧。问题描述:大佬们 请问下这个问题 有一个数据对应表,然后遍历df数据只要df存在对应的数据就替换掉但是这个一直报错(IndexError:index0isoutofboundsf......
  • 有一个数据对应表,遍历df数据只要df存在对应的数据就替换掉,但是这个一直报错
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个Pandas数据处理的问题,一起来看看吧。问题描述:大佬们 请问下这个问题 有一个数据对应表,然后遍历df数据只要df存在对应的数据就替换掉但是这个一直报错(IndexError:index0isoutofboun......
  • 秦疆的Java课程笔记:51-52 数组 什么是数组&数组的声明和创建
    51什么是数组数组是入门阶段的最后部分。数组的定义:数组是相同类型数据的有序集合。数组描述的是相同类型的若干数据,按照一定的先后次序排序组合而成。其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。52数组的声明和创建首先必须声明数......
  • umask永久修改用户创建文件权限
    Linux里永久设置用户创建文件权限的配置文件是/etc/profile。可以在该文件中添加umask命令来设置默认权限。具体操作步骤如下:打开/etc/profile文件:sudovi/etc/profile在文件末尾添加umask命令并设置默认权限例如设置默认权限为022:umask022保存文件并退出使配置文件生效:so......
  • IDEA创建SpringBoot项目无法选择底版本JDK创建
    本地的IDEA版本为2021.3,当我们想要使用SpringInitializr快速创建一个SpringBoot项目时,会发现可以选择的JDK版本基本都是最新版本,而我们本地使用的JDK8,导致无法创建项目。解决方式:1、升级JDK版本因为Spring官网使用的Spring版本比较新,而新版的Spring不支持低版本的JDK了,所以我......
  • 树的层序遍历算法框架
    1核心代码框架点击查看代码voidlevelOrder(TreeNode*root){if(!root)return;queue<TreeNode*>que;que.push(root);while(!que.empty()){intsize=que.size();for(inti=0;i<size;i++){TreeNode*cur=......
  • 第10次-创建一个在线网站
    这个作业属于哪个课程https://edu.cnblogs.com/campus/uzz/cs3这个作业要求在哪里https://edu.cnblogs.com/campus/uzz/cs3/homework/13118这个作业的目标第10次-创建一个在线网站网站地址:http://xiao-dong-36.gitee.io/xiao-qiaos-resume......
  • C++U5-08-二叉树1
    上节课作业分析讲解视频链接:https://pan.baidu.com/s/1_jaM_TlZmLJX4JbLuJtKzA?pwd=2us4提取码:2us4学习目标  树在C++中,二叉树是一种常用的数据结构,由节点(Node)组成,每个节点可以有最多两个子节点。二叉树具有以下几个主要的作用:存储和组织数据:二叉树可用于存储和组织大......
  • flask 之创建和运行
    一、相关概念1、pythonweb框架#python中的web框架-django:大而全,内置很多-flask:小而精,几乎没有内置,都需要用第三方解决-fastapi:异步框架,号称效率高-Sanic-Tornado-web.py...#flask介绍#0Flask是一个用Python编写的Web应用......
  • 第10次-创建一个在线网站
    这个作业属于哪个课程https://edu.cnblogs.com/campus/uzz/cs3这个作业要求在哪里https://edu.cnblogs.com/campus/uzz/cs3/homework/13118这个作业的目标第10次-创建一个在线网站网址地址:http://175.178.224.187/......