您的位置:首页 > 编程语言 > C语言/C++

2-d树头文件C语言

2010-10-17 00:50 183 查看
/*  2-d_tree.h -- 2-d树头文件	*/
#define ODD 1
#define EVEN 0
#define TRUE 1
#define FALSE 0

/*	数据类型定义	*/
typedef int Item ;
typedef struct node
{
	int layer ;
	Item key1, key2 ;
	struct node * left ;
	struct node * right ;
} Node ;
typedef Node * Tree ;

/*	接口函数声明	*/

/*	操作:	初始化一个2-d树	*/
/*	操作前:	ptree 指向一棵2-d树	*/
/*	操作后:	该树被初始化为空树	*/
void InitializeTree (Tree * const ptree) ;

/*	操作:	确定一棵2-d树是否为空	*/
/*	操作前:	ptree 指向一棵已初始化的2-d树	*/
/*	操作后:	如果该树为空, 函数返回1; 否则函数返回0	*/
int TreeIsEmpty (const Tree * const ptree) ;

/*	操作:	返回一棵2-d树最左侧的结点的指针	*/
/*	操作前:	ptree 指向一棵已初始化的2-d树	*/
/*	操作后:	返回该树中最左侧的结点的指针	*/
Node * FindMin (const Tree * const ptree) ;

/*	操作:	返回一棵2-d树最右侧结点的指针	*/
/*	操作前:	ptree 指向一棵已初始化的2-d树	*/
/*	操作后:	返回该树中最右侧结点的指针	*/
Node * FindMax (const Tree * const ptree) ;

/*	操作:	向树中添加一个数据为指定数据的结点	*/
/*	操作前:	ptree 指向一棵已初始化的2-d树, pkey1 指向第一个关键字, pkey2 指向第二个关键字	*/
/*	操作后:	如果可能, 一个关键字1同 *pkey1 相同, 关键字2同 *pkey2 相同的结点被添加到树中, 函数返回1; 否则函数返回0	*/
int Insert (Tree * const ptree, const Item * const pkey1, const Item * const pkey2) ;

/*	操作:	以中序将一个函数作用于树中满足low1 <= key1 <= high1 && low2 <= key2 <= high2的所有结点	*/
/*	操作前:	ptree 指向一棵已初始化的2-d树, low1, high1, low2, high2代表范围, pfun 指向一个没有返回值, 接受一个指向Item类型的指针的函数	*/
/*	操作后: 以中序将一个函数作用于树中满足low1 <= key1 <= high1 && low2 <= key2 <= high2的所有结点	*/
void InorderSeekTraversal (const Tree * const ptree, const Item low1, const Item low2, const Item high1, const Item high2, void (* pfun) (const Item * const pkey1, const Item * const pejy2)) ;

/*	操作:	从2-d树中删除一个数据为指定数据的结点	*/
/*	操作前:	ptree 指向一棵已初始化的2-d树, pkey1 指向关键字1, peky2 指向关键字2	*/
/*	操作后:	如果可能, 从树中删除该结点并返回新树; 否则返回原树	*/
Tree Delete (Tree * const ptree, const Item * const pkey1, const Item * const pkey2) ;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: