这样一来,我们就难以克服。
例如,有红色黑树树树树树树叶树叶树叶树叶树叶树叶树树叶树叶树树树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树叶树
typedef unsigned long int Key;
struct rbt_node{
Item item;
int color;
Key key;
struct rbt_node* parent;
struct rbt_node* left;
struct rbt_node* right;
};
然后,在项目h中,一则界定使用结构,例如:
typedef struct _something* Item;
这样一来,这个项目就与树木执行分开。 如果想再利用ADT处理其他类型的问题,就会产生问题。
此时此刻,我必须确定项目2.h,并抄送rbt.c/rbt.h,以便浏览项目2.h并更改职能名称。 是否有任何更清洁的方法?
我发现,。 双重清单与抽象数据类型挂钩,但似乎有一些问题,取决于结构的架构和规模,而结构并不真正知识。
I m looking for this kind of usage:
rbt_insert(rbt_of_something, something);
rbt_insert(rbt_of_somethingElse, somethingElse);
增 编