删除二叉树子树

简介: 删除二叉树子树

1.算法设计1.首先递归创建一颗二叉树根据输入的节点值创建二叉树根据用户输入的节点值(#表示空节点),使用递归的方式创建二叉树。2.查找要删除的子树的根节点输入要删除的子树的根节点的值,程序在二叉树中查找值为该值的节点,并返回该节点的指针。3.递归删除子树对于当前节点,依次递归删除其左子树和右子树中值为子树根节点值的子树。如果当前节点为空或者当前节点的值不等于子树根节点的值,则直接返回当前节点的指针。如果当前节点的左子树或右子树中存在值为子树根节点的节点,则将该节点的左子树或右子树置为空,并释放该节点的空间。输出删除子树后的二叉树使用中序遍历的方式遍历二叉树,输出删除子树后的节点值序列。5.输出删除成功,结束程序2.程序清单#include <stdio.h>#include <stdlib.h>#define TYPE charstruct biTree { TYPE data; struct biTree lchild; struct biTree rchild;};/ * 释放节点T函数 * @param T /void del(struct biTree T) { if (T) { if (T->lchild)del(T->lchild); if (T->rchild)del(T->rchild); free(T); }}/ 这里设置一个父结点指针 因为free只会释放所在结点里面的内容 并不会置空 **/void delXsub(struct biTree *T, int x) { struct biTree *p = T; if (p->lchild && p->lchild->data == x) { del(p->lchild); p->lchild = NULL; } if (p->rchild && p->rchild->data == x) { del(p->rchild); p->rchild = NULL; } if (p->lchild)delXsub(p->lchild, x); if (p->rchild)delXsub(p->rch


相关文章
|
JavaScript 前端开发 数据安全/隐私保护
详细介绍NPM的基本使用方法、常用命令和一些实用技巧
详细介绍NPM的基本使用方法、常用命令和一些实用技巧
437 0
debian11换源
直接编辑 /etc/apt/sources.list 文件
1583 0
|
JSON API 数据格式
您可以在钉钉开放平台的API文档中找到对应的API接口来创建审批实例
您可以在钉钉开放平台的API文档中找到对应的API接口来创建审批实例【1月更文挑战第9天】【1月更文挑战第41篇】
330 2
|
缓存
npm install 报 npm ERR! cb()never called!的错误
npm install 报 npm ERR! cb()never called!的错误
1845 0
|
JavaScript 前端开发
初识Svelte前端框架,据说比Vue还好用!
初识Svelte前端框架,据说比Vue还好用!
|
11月前
|
负载均衡 Serverless 持续交付
云端问道9期实践教学-省心省钱的云上Serverless高可用架构
详细介绍了云上Serverless高可用架构的一键部署流程
210 10
|
9月前
|
JSON 数据管理 Java
淘宝买家订单列表、订单详情、订单物流 API 接口全攻略
淘宝订单相关API接口是电商自动化的核心工具,提供订单数据管理和物流追踪功能。开发者可通过HTTP协议调用,支持Python、Java等语言,响应JSON格式数据。主要功能包括:订单列表查询、订单详情获取和物流轨迹追踪。申请流程:注册账号(c0b.cc/R4rbK2),创建应用并生成App Key,申请所需接口权限如taobao.trades.sold.get、taobao.trade.fullinfo.get等。
1412 7
|
缓存 负载均衡 测试技术
企业系统工程(Enterprise Systems Engineering, ESE)是一个跨学科的领域,它应用系统工程的原则和方法来规划、设计、实施和管理复杂的组织系统,特别是那些涉及信息技术(IT)和商业流程的系统。
企业系统工程(Enterprise Systems Engineering, ESE)是一个跨学科的领域,它应用系统工程的原则和方法来规划、设计、实施和管理复杂的组织系统,特别是那些涉及信息技术(IT)和商业流程的系统。
|
Java 程序员 数据处理
探索编程范式:面向对象编程与函数式编程的比较与取舍
本文将探讨面向对象编程(OOP)和函数式编程(FP)两种主流的编程范式,并比较它们在代码组织、可复用性、并发性和代码风格等方面的特点。通过深入了解它们的优势和不足,读者可以更好地选择适合自己项目需求的编程范式。
458 1
|
SQL Oracle 关系型数据库
PostgreSQL技术大讲堂 - 第27讲:Oracle-FDW部署
从零开始学PostgreSQL,PG技术大讲堂 - 第27讲:Oracle-FDW部署
321 2

热门文章

最新文章