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

二叉树遍历

时间:2023-09-09 21:56:06浏览次数:47  
标签:lchild 遍历 createNode BiTNode 二叉树 rchild NULL

#include<stdio.h>
#include<stdlib.h>

//定义
typedef struct BiTNode{
    int data;    //数据域
    struct BiTNode *lchild,*rchild; 
}BiTNode,*BiTree;

//创建新节点 
bool createNode(BiTree &T,int value){
    T=(BiTNode *)malloc(sizeof(BiTNode));
    if(T==NULL)
        return false;
    T->data=value;
    T->lchild=NULL;
    T->rchild=NULL;
    return true;
} 

//访问结点 
void visit(BiTNode *T){
    int x=T->data; 
    printf("%d  ",x);
} 

//先序遍历
void PreOrder(BiTNode *T){
    if(T!=NULL){
        visit(T);
        PreOrder(T->lchild);
        PreOrder(T->rchild);
    }
} 

//中序遍历
void InOrder(BiTNode *T){
    if(T!=NULL){
        InOrder(T->lchild);
        visit(T);
        InOrder(T->rchild);
    }
} 
//后序遍历
void PostOrder(BiTNode *T){
    if(T!=NULL){
        PostOrder(T->lchild);
        PostOrder(T->rchild);
        visit(T);
    }
} 
int main(){
    BiTree T;
    createNode(T, 1);
    createNode(T->lchild, 2);
    createNode(T->rchild, 3);
    createNode(T->lchild->lchild, 4);
    createNode(T->lchild->rchild, 5);

    // 先序遍历二叉树
    printf("先序遍历结果为:");
    PreOrder(T);
    
    // 中序遍历二叉树
    printf("中序遍历结果为:");
    InOrder(T);
    
    // 后序遍历二叉树
    printf("后序遍历结果为:");
    PostOrder(T);

    return 0;
}

 运行结果:

 

标签:lchild,遍历,createNode,BiTNode,二叉树,rchild,NULL
From: https://www.cnblogs.com/zyj3955/p/17690221.html

相关文章

  • [刷题记录Day 23]Leetcode二叉树
    No.1题目修剪二叉搜索树思路递归法有点抽象,要对具体案例做模拟才好懂递归分析返回值:节点,参数:节点,[下界,上界]终止条件:遇到空节点,返回空单层递归逻辑:判断不在范围内的情况:当前节点小于下界/大于上界,直接返回右/左子树递归结果;若在范围内,则递归筛查左右子树,返回当前节点......
  • QTablewidget的使用 读写与遍历
    QTableWidget表格中的数据读写操作//读数据QStringstr=ui->TableWidget->item(row,column)->text();//取出字符串//item的参数row,column是行和列,都是从0开始,注意不要越界。intnum=str.toInt();//如果需要的是整型数,可以转成int//写数据ui->TableWidget->item(row,col......
  • 二叉树 层序
    相关阅读:https://programmercarl.com/0102.%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E5%B1%82%E5%BA%8F%E9%81%8D%E5%8E%86.html#_102-%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E5%B1%82%E5%BA%8F%E9%81%8D%E5%8E%86层序遍历即二叉树的广度优先遍历,使用队列先进先出的特性。#层序遍......
  • 字面量、遍历、标识符
    title:字面量、变量、标识符index_img:https://picss.sunbangyan.cn/2023/07/30/stdtw2.jpgtags:-JavaSEcategories:-JavaSEhide:falseexcerpt:字面量、遍历、标识符。一、字面量说明数据怎么写字面量类型书写格式整型10、23小数类型3.14、3......
  • STL在遍历过程中操作地址的改变
    2023-08-2609:57:22startwriting2023.8.269:18又遇到奇怪错误了,其实在打模拟赛(wzOI2023.8.24T1)的时候就发现有这个问题了,赛后来研究一下。以下代码://check是一个返回值为bool类型的判断函数,S是一个unordered_set<int>for(inti=1;i<=n;i++){intx=i,maxx=0,ans......
  • JS基本遍历方法
    for这大概是应用最广的循环语句了吧,简单实用,且大多数时候性能还是在线的,唯一的缺点大概就是太普通,没有特色,导致很多人现在不愿用它。constarray=[4,7,9,2,6];for(constindex=0;index<array.length;index++){constelement=array[index];console.log......
  • 26.二叉树的最近公共祖先
    236.二叉树的最近公共祖先1、概要给定一个二叉树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个结点p、q,最近公共祖先表示为一个结点x,满足x是p、q的祖先且x的深度尽可能大(一个节点也可以是它自己的祖先)。”说明:所......
  • pandas-遍历和迭代
    pandas-遍历和迭代目录pandas-遍历和迭代iterrows()itertuples()借助zip()foriindf备注参考资料遍历数据是最常见的一种方式,pandas同样也可以遍历。iterrows()或itertuples():这两个方法用于遍历DataFrame的行。iterrows()返回一个迭代器,产生索引和行的元组,而itertup......
  • 剑指 Offer 33. 二叉搜索树的后序遍历序列
    输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树:5/\26/\13示例1:输入:[1,6,3,2,5]输出:false示例2:输入:[1,3,2,6,5]输出:truec......
  • 【Leetcode刷题记录】1、统计参与通信的服务器;2、统计二叉树中好节点的数目;3、从两个
    1、统计参与通信的服务器题目:这里有一幅服务器分布图,服务器的位置标识在 m*n 的整数矩阵网格 grid 中,1表示单元格上有服务器,0表示没有。如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。请你统计并返回能够与至少一台其他服务器进行通信的服务器的......