gpt4 book ai didi

c - 是否有充分的理由不在一个节点中包含多个节点指针以在多个数据结构中使用?

转载 作者:行者123 更新时间:2023-11-30 18:06:55 24 4
gpt4 key购买 nike

以我正在做的作业为例。我们将使用二叉搜索树来查找一组数据中的一部分,然后使用链表来查找该组数据中的另一部分。教授建议的方法是:

struct treeNode
{
data * item;
treeNode *left, *right;
};

struct listNode
{
data * item;
listNode *next, *prev;
};

class collection
{
public:
........
}

其中数据是包含每条记录的详细信息的类。显然,按照设置,链表中不能存在树节点。

这样不是更简单吗:

struct node
{
data * item;
node *listNext, *listPrev, *treeLeft, *treeRight;
};

然后我们可以声明:

node * listHead;
node * treeRoot;

并将两种插入算法包含到类中。

我有什么遗漏吗?

最佳答案

实际上,数据项将被插入到两个列表中。赋值的(普通)目的是对数据集中两个不同元素中的数据集进行排序。

话虽如此,我不会节省内存吗?结合这 2 个节点,我最终得到 5 个指针,如果我将它们分开,我将使用 6 个指针。而且,这样我实际上只有一组数据。如果我有 250 个数据项需要跟踪,我就会有一组 1250 个指针,而不是 2 个 750 个指针的列表。也许我误解了指针调用实际分配的内容。

关于c - 是否有充分的理由不在一个节点中包含多个节点指针以在多个数据结构中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5250475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com