数据结构实验 实验5结合二叉树的二叉排序树设计

这篇博客旨在介绍二叉排序树的概念,通过结合二叉树数据结构,阐述如何设计一个算法来删除节点值为X的节点,确保删除后仍保持二叉排序树性质且高度不变。
摘要由CSDN通过智能技术生成

一、【实验目的】

  1. 了解二叉排序树的定义,并结合二叉树的数据结构;
  2. 掌握二叉排序树的排序方法。

 

二、【实验内容】

二叉排序树采用二叉链表存储。写一个算法,删除结点值是X的结点。要求删除该结点后,此树仍然是一棵二叉排序树,并且高度没有增长(注:可不考虑被删除的结点是根的情况)。

 

三、【实验步骤与要求】

  1. 了解二叉排序树的定义,并结合二叉树的数据结构;
  2. 掌握二叉排序树的排序方法。

 

#include<stdio.h>
#include<malloc.h>
//函数结果状态代码
#define TRUE            1
#define FALSE           0
#define OK              1
#define ERROR           0
#define INFEASIBLE      -1
#define OVERFLOW        -2
// - - 对数值型关键字
	#define	EQ(a,b)	((a)==(b))
	#define	LT(a,b)	((a)< (b))
	#define	LQ(a,b)	((a)<=(b))
typedef int Status;          	//Status是函数的类型,其值是函数结果代码
typedef int KeyType;			//关键字类型int整型
typedef int TElemType;     	//树结点数据类型定义为int型,也是关键字类型

//------二叉树的二叉链表存储表示-------
typedef struct BiTNode
{
    TElemType data;			 		//树结点数据类型为int型,也是关键字类型
    struct BiTNode *lchild,*rchild; //左右孩子指针,指向孩子结点
}BiTNode,*BiTree;                   //结构体变量,原型和指针型

//------基本操作的函数原型说明------
Status SearchBST(BiTree T,KeyType key,BiTree f,BiTree &p);
	//在根指针T所指二叉排序树中递归地查找其关键字等于key的数据元素,若成功,
	//则指针p指向该数据元素结点,并返回TRUE,否则指针p指向查找路径上访问的
	//最后一个结点并返回FALSE指针,指针f指向T的双亲&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值