【算法通关指南:数据结构与算法篇 】二叉树相关算法题:1.新二叉树 2.二叉树的遍历

🔥小龙报:个人主页

🎬作者简介:C++研发,嵌入式,机器人方向学习者

❄️个人专栏:《算法通关指南》
永远相信美好的事情即将发生

文章目录

前言

本专栏聚焦算法题实战,系统讲解算法模块:以《c++编程》,《数据结构和算法》《基础算法》《算法实战》 等几个板块以题带点,讲解思路与代码实现,帮助大家快速提升代码能力ps:本章节题目分两部分,比较基础笔者只附上代码供大家参考,其他的笔者会附上自己的思考和讲解,希望和大家一起努力见证自己的算法成长


二、新二叉树

2.1题目

链接:新二叉树

2.2 算法原理

(1)建树:和常规的链式存储方式式⼀致。
因为结点是字符,所以可以直接用ASCII 码值当做下标来使用。比如'a' 直接映射成97 ,l97 里面就存着'a' 的左儿子,r97就存着'a' 的右儿子,以此类推,建立二叉树。

  1. 先序遍历:根左右。

2.3代码

c 复制代码
#include <iostream>
using namespace std;
const int N = 300;
char l[N], r[N];

void dfs(char root)
{
	cout << root;
	if (l[root] != '*')
		dfs(l[root]);
	if (r[root] != '*')
		dfs(r[root]);

}


int main()
{
	int n;
	cin >> n;

	char root;
	cin >> root;
	cin >> l[root] >> r[root];
	for (int i = 2; i <= n; i++)
	{
		char u;
		cin >> u;
		cin >> l[u] >> r[u];
	}

	dfs(root);
	return 0;
}

三、 二叉树的遍历

3.1题目

链接:二叉树的遍历

3.2 算法原理

仿照之前讲解二叉树的方式:建图+dfs

3.3代码

c 复制代码
#include <iostream>
using namespace std;
const int N = 1e6 + 10;
int l[N], r[N];
void dfs1(int root)
{
	cout << root << " ";
	if (l[root])
		dfs1(l[root]);
	if (r[root])
		dfs1(r[root]);
}
void dfs2(int root)
{
	if (l[root])
		dfs2(l[root]);
	cout << root << " ";
	if (r[root])
		dfs2(r[root]);
}
void dfs3(int root)
{
	if (l[root])
		dfs3(l[root]);
	if (r[root])
		dfs3(r[root]);
	cout << root << " ";
}
int main()
{
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		cin >> l[i] >> r[i];
	}
	dfs1(1);
	cout << endl;
	dfs2(1);
	cout << endl;
	dfs3(1);
	cout << endl;
	return 0;
}

总结与每日励志

✨本文介绍了两个二叉树相关算法题:《新二叉树》和《二叉树的遍历》。在《新二叉树》中,通过ASCII码值映射节点建立二叉树,并实现先序遍历;《二叉树的遍历》则通过链式存储和深度优先搜索(DFS)完成前序、中序和后序遍历。代码简洁高效,适合算法初学者练习。文章强调以实战提升算法能力,鼓励读者坚持学习,相信努力终会收获成长。

相关推荐
To_OC1 天前
大模型蒸馏是啥?说白了就是大厨带徒弟的学问
人工智能·llm·agent
新手来了@click1 天前
JAVA+AI 简化开发操作|文章被 AI Agent 技术社区收录分享
人工智能
GuWenyue1 天前
Cursor黑盒拆解!1套LangChain.js手写Mini编程Agent,自动生成React项目,效率提升60%
前端·数据库·人工智能
GuWenyue1 天前
传统Agent工具两大痛点!300行代码落地MCP跨语言工具,彻底解耦LLM与工具
前端·人工智能·算法
老云讲算力市场1 天前
WAIC首日观察:国产算力与机器人加速落地,奇点算力迎来产业新机遇
人工智能·科技
糖果店的幽灵1 天前
【DeepAgents 从入门到精通】Context Management 上下文管理
java·人工智能·后端·spring·中间件·langgraph·deepagents
小林ixn1 天前
大模型随机说话的秘密:Temperature 和 Top K 深度解析,LangChain 实战调优
人工智能·langchain
ALINX技术博客1 天前
ALINX 亮相 2026 WAIC 世界人工智能大会,展示 AI 视觉 FPGA+GPU 异构计算与电子后视镜解决方案
人工智能·ai·fpga·世界人工智能大会·电子后视镜
程序员老猫1 天前
当 AI 能写 80% 的代码时,后端工程师的核心价值还剩什么?
人工智能
想会飞的蒲公英1 天前
计算机怎样读取中文文本:编码、清洗与标准化
人工智能·python·自然语言处理