【06】先序遍历建立二叉树,并进行三种遍历

2024-03-29 22:58

本文主要是介绍【06】先序遍历建立二叉树,并进行三种遍历,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

main函数

int main()
{ Bitree* T=NULL;printf("输入二叉树的先序遍历结点,建立二叉树。(子树为空时输入@)\n");T=CreateBtree_DLR(T);printf("\n先序遍历的结果:\n");PreOrder(T);printf("\n中序遍历的结果:\n");InOrder(T);printf("\n后序遍历的结果:\n");PostOrder(T);
return 0;
}

先序遍历建立二叉树

Bitree* CreateBtree_DLR(Bitree* root)
{ char ch;scanf("%c",&ch);if(ch=='@')root=NULL;else{root=(Bitree*)malloc(sizeof(Bitree));root->data=ch;root->lchild=CreateBtree_DLR(root->lchild); //构造左子树root->rchild=CreateBtree_DLR(root->rchild); //构造右子树}return(root);
}

通过循环调用建立二叉树

void PreOrder(Bitree* T)    //先序遍历二叉树
{if ( T!=NULL ) {  printf("%c ",T->data);PreOrder(T->lchild);PreOrder(T->rchild);}
}
void InOrder(Bitree* T)    //中序遍历二叉树
{if ( T!=NULL ) {   InOrder(T->lchild);printf("%c ",T->data);       InOrder(T->rchild);}
}
void PostOrder(Bitree* T)    //后序遍历二叉树
{if ( T!=NULL ) {   PostOrder(T->lchild); PostOrder(T->rchild);printf("%c ",T->data);   }
}

全部代码

#include <stdio.h>
#include <stdlib.h>
typedef char Elemetype;typedef struct BiTNode    //定义二叉链表的结构体
{  Elemetype data;struct BiTNode *lchild,*rchild;}Bitree;
Bitree* CreateBtree_DLR(Bitree* root); //以先序遍历建立二叉树
void PreOrder(Bitree* T);    //先序遍历二叉树
void InOrder(Bitree* T);    //中序遍历二叉树
void PostOrder(Bitree* T); //后序遍历二叉树int main()
{ Bitree* T=NULL;printf("输入二叉树的先序遍历结点,建立二叉树。(子树为空时输入@)\n");T=CreateBtree_DLR(T);printf("\n先序遍历的结果:\n");PreOrder(T);printf("\n中序遍历的结果:\n");InOrder(T);printf("\n后序遍历的结果:\n");PostOrder(T);
return 0;
}
Bitree* CreateBtree_DLR(Bitree* root)
{ char ch;scanf("%c",&ch);if(ch=='@')root=NULL;else{root=(Bitree*)malloc(sizeof(Bitree));root->data=ch;root->lchild=CreateBtree_DLR(root->lchild); //构造左子树root->rchild=CreateBtree_DLR(root->rchild); //构造右子树}return(root);
}
void PreOrder(Bitree* T)    //先序遍历二叉树
{if ( T!=NULL ) {  printf("%c ",T->data);PreOrder(T->lchild);PreOrder(T->rchild);}
}
void InOrder(Bitree* T)    //中序遍历二叉树
{if ( T!=NULL ) {   InOrder(T->lchild);printf("%c ",T->data);       InOrder(T->rchild);}
}
void PostOrder(Bitree* T)    //后序遍历二叉树
{if ( T!=NULL ) {   PostOrder(T->lchild); PostOrder(T->rchild);printf("%c ",T->data);   }
}

运行结果
在这里插入图片描述
在这里插入图片描述
看完点赞,谢谢!

这篇关于【06】先序遍历建立二叉树,并进行三种遍历的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/859871

相关文章

大语言模型(LLMs)能够进行推理和规划吗?

大语言模型(LLMs),基本上是经过强化训练的 n-gram 模型,它们在网络规模的语言语料库(实际上,可以说是我们文明的知识库)上进行了训练,展现出了一种超乎预期的语言行为,引发了我们的广泛关注。从训练和操作的角度来看,LLMs 可以被认为是一种巨大的、非真实的记忆库,相当于为我们所有人提供了一个外部的系统 1(见图 1)。然而,它们表面上的多功能性让许多研究者好奇,这些模型是否也能在通常需要系

Python应用开发——30天学习Streamlit Python包进行APP的构建(9)

st.area_chart 显示区域图。 这是围绕 st.altair_chart 的语法糖。主要区别在于该命令使用数据自身的列和指数来计算图表的 Altair 规格。因此,在许多 "只需绘制此图 "的情况下,该命令更易于使用,但可定制性较差。 如果 st.area_chart 无法正确猜测数据规格,请尝试使用 st.altair_chart 指定所需的图表。 Function signa

06-6.2.1 邻接矩阵法

👋 Hi, I’m @Beast Cheng 👀 I’m interested in photography, hiking, landscape… 🌱 I’m currently learning python, javascript, kotlin… 📫 How to reach me --> 458290771@qq.com 喜欢《数据结构》部分笔记的小伙伴可以订阅专栏,今后还会

气象站的种类和应用范围可以根据不同的分类标准进行详细的划分和描述

气象站的种类和应用范围可以根据不同的分类标准进行详细的划分和描述。以下是从不同角度对气象站的种类和应用范围的介绍: 一、气象站的种类 根据用途和安装环境分类: 农业气象站:专为农业生产服务,监测土壤温度、湿度等参数,为农业生产提供科学依据。交通气象站:用于公路、铁路、机场等交通场所的气象监测,提供实时气象数据以支持交通运营和调度。林业气象站:监测林区风速、湿度、温度等气象要素,为林区保护和

企业如何进行员工的网络安全意识培训?

企业网络安全意识培训的重要性         企业网络安全意识培训是提升员工网络安全素质的关键环节。随着网络技术的快速发展,企业面临的网络安全威胁日益增多,员工的网络安全意识和技能水平直接关系到企业的信息安全和业务连续性。因此,企业需要通过系统的网络安全意识培训,提高员工对网络安全的认识和防范能力,从而降低企业在面对潜在安全风险时的损失和影响。 企业网络安全意识培训的方法         企

剑指offer(C++)--平衡二叉树

题目 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 class Solution {public:bool IsBalanced_Solution(TreeNode* pRoot) {if(pRoot==NULL)return true;int left_depth = getdepth(pRoot->left);int right_depth = getdepth(pRoot->rig

二叉树三种遍历方式及其实现

一、基本概念 每个结点最多有两棵子树,左子树和右子树,次序不可以颠倒。 性质: 1、非空二叉树的第n层上至多有2^(n-1)个元素。 2、深度为h的二叉树至多有2^h-1个结点。 3、对任何一棵二叉树T,如果其终端结点数(即叶子结点数)为n0,度为2的结点数为n2,则n0 = n2 + 1。 满二叉树:所有终端都在同一层次,且非终端结点的度数为2。 在满二叉树中若其深度为h,则其所包含

使用JWT进行安全通信

在现代Web应用中,安全通信是至关重要的。JSON Web Token(JWT)是一种流行的安全通信方式,它允许用户和服务器之间安全地传输信息。JWT是一种紧凑的、URL安全的表示方法,用于在两方之间传输信息。本文将详细介绍JWT的工作原理,并提供代码示例帮助新人理解和实现JWT。 什么是JWT? JWT是一种开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以JSO

LeetCode 算法:二叉树的中序遍历 c++

原题链接🔗:二叉树的中序遍历 难度:简单⭐️ 题目 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 提示: 树中节点数目在范围 [0, 100] 内 -100 <= Node.

ccp之间是不可以直接进行+,-的,要用ccpSub和ccpAdd。

1.  http://www.cnblogs.com/buaashine/archive/2012/11/12/2765691.html  上面有好多的关于数学的方面的知识,cocos2dx可能会用到的 2.学到了   根据tilemap坐标得到层上物体的id int oneTiled=flagLayer->tileGIDt(tilePos);