2024.2.7

 

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef char datatype;typedef struct node
{//数据域datatype data;//指针域:左struct node *lchild;//指针域:右struct node *rchild;
}*btree;//创建节点
btree creat_node()
{btree s=(btree)malloc(sizeof(struct node));if(s==NULL)return NULL;s->data='\0';s->lchild=s->rchild=NULL;return s;
}//创建二叉树
btree creat_tree()
{datatype element;printf("please enter element:");scanf(" %c",&element);if(element=='#')return NULL;//节点btree tree=creat_node();tree->data=element;//loop leftputs("left");tree->lchild=creat_tree();//loop rightputs("right");tree->rchild=creat_tree();return tree;
}//前序遍历
void first(btree tree)
{if(tree==NULL)return;//遍历根printf("%c",tree->data);//左孩子遍历first(tree->lchild);//右孩子遍历first(tree->rchild);
}//中序遍历
void mid(btree tree)
{if(tree==NULL)return;//左孩子遍历mid(tree->lchild);//遍历根printf("%c",tree->data);//右孩子遍历mid(tree->rchild);
}
//后序遍历
void last(btree tree)
{if(tree==NULL)return;//左孩子遍历last(tree->lchild);//右孩子遍历last(tree->rchild);	//遍历根printf("%c",tree->data);
}//计算节点个数
void count(btree tree,int *n0,int *n1,int *n2)
{if(tree==NULL)return;if(!tree->lchild && !tree->rchild)++*n0;else if(tree->lchild && tree->rchild)++*n2;else ++*n1;//left loopcount(tree->lchild,n0,n1,n2);//right loopcount(tree->rchild,n0,n1,n2);
}//深度计算     
int high(btree tree)
{if(tree==NULL)return 0;//leftint left=1+high(tree->lchild);//rightint right=1+high(tree->rchild);return left>right?left:right;
}int main(int argc, const char *argv[])
{//创建树btree tree=creat_tree();//前序遍历puts("first:");first(tree);puts("");//中序遍历puts("mid:");mid(tree);puts("");//后序遍历puts("last:");last(tree);puts("");//计算节点个数int n0=0,n1=0,n2=0;count(tree,&n0,&n1,&n2);printf("n0=%d n1=%d n2=%d n=%d\n",n0,n1,n2,n0+n1+n2);//深度计算int len=high(tree);printf("len=%d\n",len);return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/674237.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式中轻松识别STM32单片机是否跑飞方法

单片机项目偶尔经常出现异常&#xff0c;不知道是程序跑飞了&#xff0c;还是进入某个死循环了&#xff1f; 因为发生概率比较低&#xff0c;也没有规律&#xff0c;所以没办法在线调试查找问题。 结合这个问题&#xff0c;给大家分享一下用ST-LINK Utility识别单片机程序是否…

python-可视化篇-pyecharts库-气候堆叠图

准备 代码 # codingutf-8 # 代码文件&#xff1a;code/chapter10/10.3.py # 3D柱状图import randomfrom pyecharts import options as opts from pyecharts.charts import Bar3D# 生成测试数据 data [[x, y, random.randint(10, 40)] for y in range(7) for x in range(24)]…

[算法前沿]--060-天工Skywork-13B 开源模型

1.技术细节 》 数据处理、 数据配比、模型优化、评估方案 2.数据集 wudao-DataSkywork-150B:https://hf.co/Skywork非盈利性机构构建的CommonCrawl数据集是一个海量的、非结构化的、多语言的网页数据集。它包含了超过 8 年的网络爬虫数据集,包含原始网页数据(WARC)、元数…

Git中为常用指令配置别名

目录 1 前言 2 具体操作 2.1 创建.bashrc文件 2.2 添加指令 2.3 使其生效 2.4 测试 1 前言 在Git中有一些常用指令比较长&#xff0c;当我们直接输入&#xff0c;不仅费时费力&#xff0c;还容易出错。这时候&#xff0c;如果能给其取个简短的别名&#xff0c;那么事情就…

电力负荷预测 | 电力系统负荷预测模型(Python线性回归、随机森林、支持向量机、BP神经网络、GRU、LSTM)

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 电力系统负荷预测模型(Python线性回归、随机森林、支持向量机、BP神经网络、GRU、LSTM) 所谓预测,就是指通过对事物进行分析及研究,并运用合理的方法探索事物的发展变化规律,对其未来发展做出预先估计和判断。…

计算机毕业设计 | SSM 医药信息管理系统(附源码)

1&#xff0c; 概述 1.1 课题背景 本系统由说书客面向广大民营药店、县区级医院、个体诊所等群体的药品和客户等信息的管理需求&#xff0c;采用SpringSpringMVCMybatisEasyui架构实现&#xff0c;为单体药店、批发企业、零售连锁企业&#xff0c;提供有针对性的信息数据管理…

MySQL 时间索引的选择

背景 MySQL 在使用过程中经常会对时间加索引&#xff0c;方便进行时间范围的查询&#xff0c;常见的时间类型有 data、datetime、long、timestamp 等&#xff0c;在此分析下这几种时间类型的索引大小&#xff0c;以找到比较合适的时间类型。 时间类型对比 常用的索引类型是 …

科技的成就(五十六)

527、Chrome 1.0 发布 2008 年 12 月 11 日&#xff0c;Chrome 1.0 发布。Chrome 是由谷歌开发的跨平台免费专有网络浏览器&#xff0c;使用内置了高性能 JavaScript 引擎 V8 的 Blink 作为浏览器渲染引擎。Chrome 基于开源软件项目 Chromium&#xff0c;其他基于该项目的知名浏…

HttpServletResponse接口用于表示状态代码的字段

1. HttpServletResponse接口用于表示状态代码的字段 您已学习了状态代码以及可用于从servlet向客户机发送状态代码的HttpServletResponse接口的字段。下表列出了HttpServletResponse接口表示状态代码的一些其他字段。 字段状态代码描述SC_HTTP_VERSION_NOT_SUPPORTED505服务器…

PyTorch深度学习实战(23)——从零开始实现SSD目标检测

PyTorch深度学习实战&#xff08;23&#xff09;——从零开始实现SSD目标检测 0. 前言1. SSD 目标检测模型1.1 SSD 网络架构1.2 利用不同网络层执行边界框和类别预测1.3 不同网络层中默认框的尺寸和宽高比1.4 数据准备1.5 模型训练 2. 实现 SSD 目标检测2.1 SSD300 架构2.2 Mul…

JAVA json转xml

首先要去官方下载json-lib工具包 https://mvnrepository.com/artifact/net.sf.json-lib/json-lib/2.4 目前最新的是2.4的版本&#xff0c;json-lib还需要以下依赖包&#xff1a; 通过mvn库可以直接去下载。 jakartacommons-lang 2.5 jakartacommons-beanutils 1.8.0 jaka…

Verilog刷题笔记25

题目&#xff1a; You’re already familiar with bitwise operations between two values, e.g., a & b or a ^ b. Sometimes, you want to create a wide gate that operates on all of the bits of one vector, like (a[0] & a[1] & a[2] & a[3] … ), whic…

USB Type-C 接口 PD 协议解决方案

文章来源&#xff1a;USB Type-C接口PD协议解决方案 | Richtek Technology

极值图论基础

目录 一&#xff0c;普通子图禁图 二&#xff0c;Turan问题 三&#xff0c;Turan定理、Turan图 1&#xff0c;Turan定理 2&#xff0c;Turan图 四&#xff0c;以完全二部图为禁图的Turan问题 1&#xff0c;最大边数的上界 2&#xff0c;最大边数的下界 五&#xff0c;…

【C++基础入门】七、指针(定义和使用、所占内存空间、空指针和野指针、const关键字修饰指针、指针和数组、指针和函数)

七、指针 7.1 指针的基本概念 指针的作用&#xff1a; 可以通过指针间接访问内存 内存编号是从0开始记录的&#xff0c;一般用十六进制数字表示可以利用指针变量保存地址 7.2 指针变量的定义和使用 指针变量定义语法&#xff1a; 数据类型 * 变量名&#xff1b; 示例&…

DevOps落地笔记-21|业务价值:软件发布的最终目的

上一课时介绍如何度量软件的内部质量和外部质量。在外部质量中&#xff0c;我们提到用户满意度是衡量软件外部质量的关键因素。“敏捷宣言”的第一条原则规定&#xff1a;“我们最重要的目标&#xff0c;是通过持续不断的及早交付有价值的软件使用户满意”。从这一点也可以看出…

【Redis笔记】使用Redisson实现可重入锁

Redisson 官方github网站:https://github.com/redisson/redisson Redisson官网&#xff1a;https://redisson.org/ 依赖引入 pom.xml文件中写入 <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version&…

2024.1.29力扣每日一题——自由之路

2024.1.29 题目来源我的题解方法一 动态规划 题目来源 力扣每日一题&#xff1b;题序&#xff1a;514 我的题解 方法一 动态规划 定义 dp[i][j] 表示从前往后拼写出 key的第 i个字符&#xff0c; ring 的第 j个字符与 12:00 方向对齐的最少步数&#xff08;下标均从 0 开始&…

2024.2.6

1.现有无序序列数组为23,24,12,5,33,5347&#xff0c;请使用以下排序实现编程 函数1:请使用冒泡排序实现升序排序 函数2:请使用简单选择排序实现升序排序 函数3:请使用快速排序实现升序排序 函数4:请使用插入排序实现升序排序 #include<stdio.h> #include<string.h&g…

简化版SpringMVC

简化版SpringMVC web.xml xml version"1.0" encoding"UTF-8"?> <web-app version"2.5" xmlns"http://java.sun.com/xml/ns/javaee" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation&quo…