总结8..

news/2025/2/1 21:52:39/

 #include <stdio.h>

// 定义结构体表示二叉树节点,包含左右子节点编号

struct node {

    int l;

    int r;

} tree[100000];

// 全局变量记录二叉树最大深度,初始为0

int ans = 0;

// 深度优先搜索函数

// pos: 当前节点在数组中的位置,deep: 当前深度

void dfs(int pos, int deep) {

    // 若为叶子节点

    if (tree[pos].l == 0 && tree[pos].r == 0) {

        if (deep > ans) ans = deep; // 更新最大深度

        return;

    }

    dfs(tree[pos].l, deep + 1); // 递归搜索左子树

    dfs(tree[pos].r, deep + 1); // 递归搜索右子树

}

 

int main() {

    int n;

    scanf("%d", &n); // 输入节点数

 

    // 输入每个节点的左右子节点编号

    for (int i = 1; i <= n; i++) {

        scanf("%d %d", &tree[i].l, &tree[i].r);

    }

    dfs(1, 1); // 从根节点开始搜索,初始深度为1

    printf("%d\n", ans); // 输出最大深度

    return 0;

}

 #include <stdio.h>

// 定义结构体 node 表示二叉树的节点,每个节点包含左子节点 l 和右子节点 r

struct node {

    char l;

    char r;

} tree[200];

// 深度优先搜索函数,用于实现二叉树的先序遍历(根 - 左 - 右)

// pos: 当前正在处理的节点值

void dfs(char pos) {

    // 输出当前节点的值,实现先序遍历中先访问根节点的操作

    printf("%c", pos);

    // 如果当前节点的左子节点不是 '*'(这里 '*' 表示空节点),则递归遍历左子树

    if (tree[pos].l!= '*') {

        dfs(tree[pos].l);

    }

    // 如果当前节点的右子节点不是 '*'(这里 '*' 表示空节点),则递归遍历右子树

    if (tree[pos].r!= '*') {

        dfs(tree[pos].r);

    }

}

 

int main() {

    int n;

    char a, b;

    // 读取二叉树的节点个数

    scanf("%d", &n);

    // 循环读取每个节点的信息

    for (int i = 1; i <= n; i++) {

        // 读取当前节点的值

        scanf(" %c", &a);

        // 记录第一个节点的值,作为二叉树的根节点

        if (i == 1) {

            b = a;

        }

        // 读取当前节点的左子节点和右子节点的值

        scanf("%c%c", &tree[a].l, &tree[a].r);

    }

    // 从根节点开始进行深度优先搜索(先序遍历)

    dfs(b);

    return 0;

}

 


http://www.ppmy.cn/news/1568523.html

相关文章

漂亮数 (线性筛+前缀和)

登录—专业IT笔试面试备考平台_牛客网 #include<bits/stdc.h> using namespace std; typedef long long ll; #define endl \nconst int N1e85; int primes[N],cnt; bool st[N]; int ans[N]; /* //多余 bool divide(int n) {int cnt0;for(int i2;i<n/i;i){if(n%i0){…

分库分表 相关问题

问题&#xff1a;分库后&#xff0c;就有多个数据源需要&#xff0c;dbproxy 对机器做代理&#xff0c;一般需要lvs/f5 等手段来实现流量的负载均衡&#xff0c;跨机房可能需要dns分发&#xff0c;例如 mycat 阿里的主键。 就这个问题通过一问一答的方式解答 什么是 dbproxy&…

LeetCode--84. 柱状图中最大的矩形【单调栈】

84. 柱状图中最大的矩形 正文 题目如下 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 这道题暴力很简单&#xff0c;但是时间复杂度是O(N^2)&#xf…

虚拟串口技术

本文来自智谱清言 --------------------------------- 虚拟串口是一种软件技术&#xff0c;它模拟了物理串口&#xff08;COM口&#xff09;(Communication Port)的功能&#xff0c;允许计算机与其他设备或应用程序通过串行通信协议进行数据交换&#xff0c;而不需要实际的物…

【架构面试】二、消息队列和MySQL和Redis

MQ MQ消息中间件 问题引出与MQ作用 常见面试问题&#xff1a;面试官常针对项目中使用MQ技术的候选人提问&#xff0c;如如何确保消息不丢失&#xff0c;该问题可考察候选人技术能力。MQ应用场景及作用&#xff1a;以京东系统下单扣减京豆为例&#xff0c;MQ用于交易服和京豆服…

分层多维度应急管理系统的设计

一、系统总体架构设计 1. 六层体系架构 #mermaid-svg-QOXtM1MnbrwUopPb {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-QOXtM1MnbrwUopPb .error-icon{fill:#552222;}#mermaid-svg-QOXtM1MnbrwUopPb .error-text{f…

LLM - 大模型 ScallingLaws 的设计 100B 预训练方案(PLM) 教程(5)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/145356022 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 Scaling Laws (缩放法则) 是大模型领域中,用于描述 模型性能(Loss) 与…

0基础跟德姆(dom)一起学AI 自然语言处理22-fasttext文本分类

1 文本分类介绍 1.1 文本分类概念 文本分类的是将文档&#xff08;例如电子邮件&#xff0c;帖子&#xff0c;文本消息&#xff0c;产品评论等&#xff09;分配给一个或多个类别. 当今文本分类的实现多是使用机器学习方法从训练数据中提取分类规则以进行分类, 因此构建文本分…