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

二叉树遍历(C语言版)

 前序遍历创建树,中序遍历把创建出来的二叉树的结点打印出来

题目链接:牛客网-二叉树遍历

    前序遍历创建树的思想:

    把每个结点看作是子树的根节点,以根左右的顺序创建一整棵二叉树

    1.空 返回空

    2.非空 先是malloc一个结点,作为根节点;然后让根的left指向左子树,让根的right指向右子树

    假设s为字符串,i为字符串数组下标;左子树可以通过root->left = Create(s, i)得到,右子树可以通过root->right = Create(s, i)得到,创建完整棵树(子树)以后,返回root(整棵树/整棵子树的根节点);由于递归的特性,这边得到的不是单一左节点or右节点,而是一整个子树

typedef struct BintreeNode
{char val;struct BintreeNode* left;struct BintreeNode* right;
}Tnode;Tnode* Create(char s[],int* i)
{if(s[*i] == '#') //空{(*i)++;return NULL;}//非空Tnode* root = (Tnode*)malloc(sizeof(Tnode));root->val = s[(*i)++];root->left = Create(s, i);root->right = Create(s, i);return root;
}

然后对创建出来的整棵树进行中序遍历(左根右),即能成功通过该题;此处需要注意的是,在主函数传参时,要传下标的地址,不然递归时会出现下标没有被保存下来的情况

全部代码:

#include <stdio.h>
#include<stdlib.h>
typedef struct BintreeNode
{char val;struct BintreeNode* left;struct BintreeNode* right;
}Tnode;Tnode* Create(char s[],int* i)
{if(s[*i] == '#') //空{(*i)++;return NULL;}//非空Tnode* root = (Tnode*)malloc(sizeof(Tnode));root->val = s[(*i)++];root->left = Create(s, i);root->right = Create(s, i);return root;
}void MidOrder(Tnode* root)//前序遍历
{if(root == NULL) return;MidOrder(root->left);printf("%c ",root->val);MidOrder(root->right);
}int main()
{char s[100];scanf("%s",s);int i = 0;Tnode* root = Create(s,&i); // 创建树,返回根节点MidOrder(root);return 0;
}

相关文章:

  • 小白学习python第四天
  • 跨专业自学AI人工智能学习路线图(2025版)
  • Linux日志处理命令多管道实战应用
  • 【Redis】Redis Zset实现原理:跳表+哈希表的精妙设计
  • 使用PHP对接印度股票市场数据
  • 基于c++的LCA倍增法实现
  • 【博客系统】博客系统第二弹:实现博客列表接口(在 Service 层重新封装 Mapper 层返回结果,避免实体类所有字段都向前端返回)、SimpleDateFormat 类的使用方法
  • 【RabbitMQ消息队列】详解(一)
  • Linux系统类型及常用操作命令总结
  • 第三方软件检测报告:热门办公软件评估及功能表现如何?
  • 电力系统失步解列与振荡解析
  • Java 内存泄漏 详解
  • 【AI提示词】领导力教练
  • 4.2.1 MYSQL语句,索引,视图,存储过程,触发器
  • 第十三步:vue
  • 【PVR】《Adaptive Palm Vein Recognition Method》
  • React Testing Library
  • Java学习手册:开发 Web 网站要知道的知识
  • T检验、F检验及样本容量计算学习总结
  • 2025第16届蓝桥杯省赛之研究生组D题最大数字求解
  • 六部门:进一步优化离境退税政策扩大入境消费
  • 湖南娄底市长曾超群,已任娄底市委书记
  • 居民被脱落的外墙瓦砖砸中致十级伤残,小区物业赔付16万元
  • 广汽集团一季度净亏损7.3亿元,同比转亏,总销量下滑9%
  • 中信证券:“国家队”未曾减持ETF,应充分相信国家维稳决心
  • 全国首个古文学习AI大模型在沪发布,可批阅古文翻译