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

一、【实验目的】

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

 

二、【实验内容】

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

 

三、【实验步骤与要求】

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

 

#include
#include
//函数结果状态代码
#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的双亲&#

你可能感兴趣的:(数据结构)