C语言手撸搜索(查找)二叉树---创建,插入,删除

存储结构

//元素类型
#define TypeElem int

typedef struct BSTNode {
   
	TypeElem data;
	struct BSTNode * lchild;
	struct BSTNode* rchild;
}BSTNode,*BSTree;

函数声明

//创建一个节点
BSTNode* Create_Node(TypeElem key);
//创建二叉排序树
void Create_BST(BSTree& T,int n);
//查找值在二叉树中的位置
BSTNode* Search_BST(BSTree T, int val);
//查找该值在二叉树的父节点
BSTNode* Search_Pre_BST(BSTree T, int val);
//插入一个节点
void Insert_BST(BSTree node,int val);
//删除值为val的节点
void Delet_BST(BSTree& T,int val);
//中序递归遍历二叉树的所有节点
void InOrder(BSTree T);

查找函数

算法的基本思路:

  1. 若二叉排序树为空树,则查找失败。
  2. 将给定值key与根节点的关键字比较,若相等,则查找成功。
  3. 将给定值key小于根节点的关键字,则在左子树查找,否则在右子树查找。

代码:

//查找值在二叉树中的位置
BSTNode* Search_BST(BSTree T, int val) {
   
	while (T) {
   
		if (T->data == val)
			return T;
		else if (T->data < val)
			T = T->rchild
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落春只在无意间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值