当前位置: 首页 > article >正文

简单二叉树的构建及遍历

1.主要函数

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

//创建节点结构体
typedef struct node{
    char data[16];//节点数据
    struct node *L;//左节点
    struct node *R;//右结点
    
}tree,*treeptr;

//先序方式创建节点
treeptr create()
{
    char buf[16];
    scanf("%s",buf);
    if(strcmp(buf,"#")==0)
    {
        return NULL;
    }
    //创建节点空间
    treeptr H=(treeptr)malloc(sizeof(tree));
    if(H==NULL)
    {
        printf("节点创建失败\n");
        return NULL;
    }
    strcpy(H->data,buf);
    H->L = create();
    H->R = create();
    return H;
}

//先序遍历
void pri_show(treeptr H)
{
    if(H==NULL)//判断节点是否为空
    {
        return ;
    }
    printf("%s",H->data);
    pri_show(H->L);
    pri_show(H->R);
}
//中序遍历
void mid_show(treeptr H)
{
    if(H==NULL)//判断节点是否为空
    {
        return ;
    }
    mid_show(H->L);
    printf("%s",H->data); 
    mid_show(H->R);
}
//后序遍历
void lat_show(treeptr H)
{
    if(H==NULL)//判断节点是否为空
    {
        return ;
    }
    lat_show(H->L);
    lat_show(H->R);
    printf("%s",H->data);
}
int main()
{
    treeptr H = create();//创建二叉树
    pri_show(H);
    putchar(10);
    mid_show(H);
    putchar(10);
    lat_show(H);
    putchar(10);

    return 0;
}

 2.测试文件


 3.实现效果


http://www.kler.cn/news/334066.html

相关文章:

  • github双重验证(2FA)启用方法
  • 《Linux从小白到高手》理论篇:Linux的资源监控管理
  • Gitのrebase用法
  • AI 助力中小企业全媒体运营,这些工具不可不知!
  • Java提升-锁相关概念以及实现
  • Python 工具库每日推荐 【NumPy】
  • Spring 循环依赖会出现什么情况? 如何解决?
  • 【JAVA开源】基于Vue和SpringBoot的宠物咖啡馆平台
  • Prompt 初级版:构建高效对话的基础指南
  • git使用“保姆级”教程4——版本回退及分支讲解
  • 数据结构-3.8.栈在括号匹配中的应用
  • 洛谷刷题 P1042 [NOIP2003 普及组] 乒乓球
  • 大模型基础:基本概念、Prompt、RAG、Agent及多模态
  • Spring Boot 控制反转(IoC) 依赖注入(DI)
  • B树系列解析
  • 【数据结构】什么是红黑树(Red Black Tree)?
  • 关键字:volatile
  • 数据库概述(1)
  • easypoi, fastpoi快速导出xlsx,导出多sheet的xlsx
  • mysql-索引笔记