c语言树结构的头文件,2-d树头文件C语言

/* 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) ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值