递归删除指定节点

这篇博客介绍了如何使用递归算法删除二叉树中所有值等于给定值的节点及其子树,同时提供了输入输出格式的说明。
摘要由CSDN通过智能技术生成

编写递归算法,对于二叉树中每一个元素值data等于x的节点,删去以它为根的子树,并释放相应的空间。

树的结构以广义表的形式给出。如A(B,)表示一颗有2个节点的树。其中根的data值为A,其左孩子为叶子节点,data值为B,右孩子为空。

输入格式

输入有两行,第一行为以广义表的形式给出的树形结构,长度在区间 [0,30)[0,30) 内,均由大写字母和左右括号组成,每个结点由一个大写字母组成,互不相同。第二行为待删除子树根结点的元素值x,为一个大写字母。

输出格式

输出有一行,为原树删除子树后的广义表达式。

若找不到该元素,则不做删除操作直接输出广义表达式。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

typedef struct Node{
	char data;
	struct Node *lchild, *rchild;
}Node;

Node *init_node(char val){
	Node *p = (Node *)malloc(sizeof(Node));
	p->data = val;
	p->lchild = p->rchild
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值