以我正在处理的任务为例。我们将使用二叉搜索树来查找一组数据中的一部分,然后使用链表查找该组中的另一部分。教授建议的方法是:
struct treeNode
{
data * item;
treeNode *left, *right;
};
struct listNode
{
data * item;
listNode *next, *prev;
};
class collection
{
public:
........
}
其中 data 是包含每条记录的详细信息的类。显然,由于它的设置,treeNode 不能存在于链表中。
会不会更简单:
struct node
{
data * item;
node *listNext, *listPrev, *treeLeft, *treeRight;
};
然后我们可以声明:
node * listHead;
node * treeRoot;
并将两种插入算法都包含在类中。
有什么我想念的吗?