【发布时间】:2011-09-29 07:46:29
【问题描述】:
大家好,我正在尝试开始我的 CS 作业(第二年的 C 论文)。
在本课程中,我们创建了一个二叉搜索树 ADT 和一个红黑树 ADT。我们必须将它们组合成一个更通用的“树”ADT,根据用户输入选择红黑树或二叉搜索树。
我从定义一个新的枚举类型开始; treetype_t 可以设置为 RBT 或 BST ...我的第一个问题是我如何声明结构,因为我不知道将选择哪个 ADT?例如在我的 bst.c 文件中,我有:
struct bstnode {
char *key;
bst left;
bst right;
};
在我的 RBT 文件中,我有:
struct rbtnode {
char *key;
colour_t colour;
rbt left;
rbt right;
};
我的第一个想法是有一个 if 语句,例如
if (treetype_t == RBT){
struct rbtnode {
char *key;
colour_t colour;
rbt left;
rbt right;
};
}
else{
struct bstnode {
char *key;
bst left;
bst right;
};
}
但是我认为这行不通...我想不出另一种方法 - 有什么想法吗?
【问题讨论】:
标签: java c binary-search-tree abstract-data-type