【考研数据结构代码题5】二叉树搜索指定关键字和其父亲结点

题目:已知一棵二叉树已经存在,二叉树的结点有三个域,分别是左右孩子指针域与数据域,且数据域为字符型,规定指针bt指向根结点。给定一个字符ch,请编写程序实现查找二叉树中是否存在数据域为ch的结点?若存在再找出该结点的双亲结点

难度:★★★

cpp 复制代码
#include<stdio.h>
#include<stdlib.h>
//二叉树存储结构
typedef struct node{
	char key;//数据域
	struct node *left,*right;//左右孩子指针域 
}BiNode;
//递归查找指定关键字结点
void find(BiNode *T,char target,BiNode *parent){
	if(T){
		int left_s,right_s;
		//如果当前结点就是要找的关键字结点,则输出其父节点关键字
		if(T->key==target){
			if(!parent)printf("NULL");
			else printf("%c",parent->key);
		}
		//递归搜索 
		if(T->left)  find(T->left,target,T);
		if(T->right) find(T->right,target,T);
	}
} 

int main(){
	char target;//目标关键字符
	scanf("%c",&target);
	find(bt,target,NULL);//bt为题目已知条件,指向该树的根节点
	return 0;
}
相关推荐
摆烂仙君30 分钟前
腾讯2025年校招笔试真题手撕(二)
数据结构·算法·华为
悦悦子a啊33 分钟前
PTA:双端队列
数据结构·c++·算法
云海听雷34 分钟前
数据结构知识点汇总
数据结构
叒卮2 小时前
小白刷题 之 如何高效计算二进制数组中最大连续 1 的个数
c语言·数据结构·学习·算法
AM艾玛2 小时前
树 Part 8
数据结构
半桔2 小时前
【烧脑算法】单序列双指针:从暴力枚举到高效优化的思维跃迁
c语言·数据结构·c++·算法·面试·visual studio
编程绿豆侠3 小时前
力扣HOT100之二叉树: 236. 二叉树的最近公共祖先
数据结构·算法·leetcode
阳洞洞7 小时前
138. Copy List with Random Pointer
数据结构·链表·list·哈希表
看到我,请让我去学习10 小时前
数据结构—排序(斐波那契数列,冒泡,选择,插入,快速,归并,图,广度优先算法)
c语言·开发语言·数据结构·后端
2301_7944615711 小时前
力扣-有效三角形的个数
数据结构·算法·leetcode