2024.10.20 进制转换 删除根节点为x的整个子树

进制转换

 十进制转换为任意进制

#include <stdio.h>
int main(){
	char res [32] = {0};
	int num;
	int index;
	scanf("%d %d",&num,&index);
	char table[] = "0123456789ABCDEF";
	int i = 0;
	if(num==0) res[0] = '0';
	else if(num!=0){
		while(num>0){
			res[i++] = table[num%index];
			num = num/index;
		}
	}
	for(;i>=0;i--)
	printf("%c",res[i]);
}

任意进制转化为十进制

#include <stdio.h>
#include <string.h>
int main(){
	int res = 0,index,i,k=1;
	char num[100],table[]="0123456789ABCDEF";
	scanf("%d %s",&index,num);
	for(i=strlen(num)-1;i>=0;i--){
		//这里为啥算相对位置?因为不这样的话没办法算出ABCD...(16进制)
		//如:'A' - '0'所算出来的值就不是正确的 
		res += (strchr(table,num[i]) - table)*k;
		printf("%d\n",res);
		k = k*index;
	} 
	printf("%d",res);
	return 0;
}
删除根节点为x的整个子树

思路:删除子树需要的是先删除左右节点然后再删除根节点,所以采用后序遍历。然后找x的话最好还是用层次遍历。

错误例子:因为这样的话,p就变成野指针了!

【C语言】5. 指针free后为什么要刻意指向NULL、野指针(原因、解决)、悬垂指针_free后的指针会指向null吗-CSDN博客

void delate(TreeNode* p){
	if(p){
		delate(p->lChild);
		delate(p->rChild);
		free(p);
	}
}

void List(TreeNode* T,int x){
	if(T==NULL) return;
	q[++w] = T;
	int sum =0,count = 0; 
	while(!IsEmpty()){
		TreeNode *p = q[b++]; 
		if(p->data==x) delate(p);
		if(p->lChild!=NULL){
			q[++w]=p->lChild;
		}
		if(p->rChild!=NULL){
			q[++w]=p->rChild;
		}
	}
	printf("\n"); 
}

正确:

void delate(TreeNode* p){
	if(p){
		delate(p->lChild);
		delate(p->rChild);
		free(p);
	}
}
void List(TreeNode* T,char x){
	if(T==NULL) return;
	q[++w] = T;
	int sum =0,count = 0; 
	if(T->data==x){
		delate(T);
		T=NULL;
		return;
	}
	while(!IsEmpty()){
		TreeNode *p = q[b++]; 
		if(p->lChild!=NULL){
			if(p->lChild->data==x){
				delate(p->lChild);
				p->lChild=NULL;
			}else{
				q[++w]=p->lChild;
			}
			
		}
		if(p->rChild!=NULL){
			if(p->rChild->data==x){
				delate(p->rChild);
				p->rChild=NULL;
			}else{
				q[++w]=p->rChild;
			}
		}
	}
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java重修笔记 UDP 网络通信

UDP 网络通信原理 1. 类 DatagramSocket 和 DatagramPacket [数据包/数据报] 实现了基于 UDP协议网络程序。 2. UDP 数据报通过数据报套接字 DatagramSocket 发送和接收&#xff0c;系统不保证UDP数据报一定能够安全送到目的地&#xff0c;也不能确定什么时候可以抵达&#…

【机器学习】决策树算法

目录 一、决策树算法的基本原理 二、决策树算法的关键概念 三、决策树算法的应用场景 四、决策树算法的优化策略 五、代码实现 代码解释&#xff1a; 在机器学习领域&#xff0c;决策树算法是一种简单直观且易于理解的分类和回归方法。它通过学习数据特征和决策规则&#…

电力系统IEC-101报文主要常用详解

文章目录 1️⃣ IEC-1011.1 前言1.2 101规约简述1.3 固定帧格式1.4 可变帧格式1.5 ASDU1.5.1 常见类型标识1.5.2 常见结构限定词1.5.3 常见传送原因1.5.4 信息体地址 1.6 常用功能报文1.6.1 初始化链路报文1.6.2 总召报文1.6.3 复位进程1.8.4 对时1.8.4.1时钟读取1.8.4.2时钟写…

R语言医学数据分析实践-R编程环境的搭建

【图书推荐】《R语言医学数据分析实践》-CSDN博客 《R语言医学数据分析实践 李丹 宋立桓 蔡伟祺 清华大学出版社9787302673484》【摘要 书评 试读】- 京东图书 (jd.com) R语言编程_夏天又到了的博客-CSDN博客 R语言对编程环境的要求不高&#xff0c;可以在多种操作系统平台上…

数据结构——顺序表的基本操作

前言 介绍 &#x1f343;数据结构专区&#xff1a;数据结构 参考 该部分知识参考于《数据结构&#xff08;C语言版 第2版&#xff09;》24~28页 补充 此处的顺序表创建是课本中采用了定义方法为SqList Q来创建&#xff0c;并没有使用顺序表指针的方法&#xff0c;具体两个…

【Linux系列】查询nginx相关的进程

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

推荐IDE中实用AI编程插件,目前无限次使用

插件介绍 一款字节跳动推出的“基于豆包大模型的智能开发工具” 以vscode介绍【pycharm等都可以啊】&#xff0c;这个插件提供智能补全、智能预测、智能问答等能力&#xff0c;节省开发时间 直接在IDE中使用&#xff0c;就不用在网页中来回切换了 感觉还可以&#xff0c;响应速…

欧盟 RED 网络安全法规 EN 18031

目录 1. &#x1f4c2; EN 18031 1.1 背景 1.2 专业术语 1.3 覆盖产品范围 1.4 EN 18031标准主要评估内容&#xff1a; 1.5 EN 18031标准主要评估项目&#xff1a; 1.6 EN 18031 与 ETSI EN 303 645 的主要差异 1.7 RED 网络安全法规解读研讨会 2. &#x1f531; EN 1…

LabVIEW示波器通信及应用

基于LabVIEW平台开发的罗德与施瓦茨示波器通信与应用系统实现了示波器的远程控制及波形数据的实时分析&#xff0c;通过TCP/IP或USB接口与计算机通信&#xff0c;利用VISA技术进行指令传输&#xff0c;从而实现高效的数据采集与处理功能。 项目背景 随着现代电子测试需求的日益…

【解决Docker无剩余存储磁盘空间问题】

【解决Docker无剩余存储磁盘空间问题】 目录 【解决Docker无剩余存储磁盘空间问题】一、问题概述二、问题原因三、解决方案1、方案一&#xff1a;清除Docker磁盘空间2、方案二&#xff1a;更换Docker磁盘存储目录 一、问题概述 执行Docker build -t [镜像名] [源目录] 命令报错…

2.1 HTML5 - Canvas标签

文章目录 引言Canvas标签概述定义实例&#xff1a;创建画布 理解Canvas坐标系概述实例&#xff1a;获取Canvas坐标 获取Canvas环境上下文概述实例&#xff1a;获取Canvas上下文设置渐变色效果 结语 引言 大家好&#xff0c;今天我们要一起探索HTML5中一个非常有趣且强大的特性…

如何将本地 Node.js 服务部署到宝塔面板:完整的部署指南

文章简介&#xff1a; 将本地开发的 Node.js 项目部署到线上服务器是开发者常见的工作流程之一。在这篇文章中&#xff0c;我将详细介绍如何将本地的 Node.js 服务通过宝塔面板&#xff08;BT 面板&#xff09;上线。宝塔面板是一个强大的服务器管理工具&#xff0c;具有简洁的…

基于SSM党务政务服务热线管理系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;部门管理&#xff0c;办事信息管理&#xff0c;信息记录管理&#xff0c;系统管理 前台账号功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;部门&#xff0c;信息…

金融信创基金行业案例:某基金公司AD信创替代方案建设分享

缺失国产域控统一认证&#xff0c;导致业务信创升级受阻 某基金管理公司在办公场景拟建设信创 OA 系统、信创邮件系统以及信创服务器、桌面终端。但原有的 AD 域既无法接管新购的信创资产&#xff0c;亦不符合全栈信创建设要求。因此&#xff0c;该基金单位必须选择一套稳定可…

H-TCP 的效率和公平性

昨晚带安孩楼下玩耍&#xff0c;用手机 desmos 作了一组 response curve 置于双对数坐标系&#xff1a; 长肥管道的优化思路都很类似&#xff0c;cwnd 增长快一点&#xff1a; BIC TCP&#xff1a;二分查找逼近 capacity&#xff1b;CUBIC TCP&#xff1a;上凸曲线逼近 capa…

PHP爬虫:获取商品销量数据的利器

在电子商务的激烈竞争中&#xff0c;掌握商品销量数据是商家洞察市场动态、制定销售策略的关键。通过PHP爬虫技术&#xff0c;我们可以高效地获取这些数据&#xff0c;为商业决策提供支持。 PHP爬虫的优势 PHP作为一种流行的服务器端脚本语言&#xff0c;拥有跨平台运行、丰富…

2025年天津仁爱学院专升本动画化学工程与工艺专业对应专业限制

天津仁爱学院2025年高职升本科招生专业对应范围目录&#xff08;动画化学工程与工艺&#xff09; 专业名称按照教育部发布的《职业教育专业目录(2021年)(更新时间&#xff1a;2024年1月)》为准&#xff0c;按更新前专业名称录取的学生以下表中原专业名称相符可申报&#xff0c…

SpringBoot项目启动报错:命令行太长解决

文章目录 SpringBoot项目启动报错&#xff1a;命令行太长解决1. 第一种方法1. 第二种方法1-1 旧版本Idea1-2 新版本Idea 3. 重新启动SpringBoot项目即可解决 SpringBoot项目启动报错&#xff1a;命令行太长解决 报错信息&#xff1a; 1. 第一种方法 1. 第二种方法 找到项目…

4 -《本地部署开源大模型》在Ubuntu 22.04系统下部署运行ChatGLM3-6B模型

在Ubuntu 22.04系统下部署运行ChatGLM3-6B模型 大模型部署整体来看并不复杂&#xff0c;且官方一般都会提供标准的模型部署流程&#xff0c;但很多人在部署过程中会遇到各种各样的问题&#xff0c;很难成功部署&#xff0c;主要是因为这个过程会涉及非常多依赖库的安装和更新及…

安防综合管理系统EasyCVR视频汇聚平台Linux环境下如何测试UDP端口是否正常开启?

视频汇聚EasyCVR安防监控视频系统采用先进的网络传输技术&#xff0c;支持高清视频的接入和传输&#xff0c;能够满足大规模、高并发的远程监控需求。平台灵活性强&#xff0c;支持国标GB/T 28181协议、部标JT808、GA/T 1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大…