【发布时间】:2014-01-10 14:33:43
【问题描述】:
我正在尝试创建 ADT。
它是有限元的动态集合。它必须使用数组和链表来实现。
一些操作包括add(set, x)和remove(set, x)。
我知道我首先需要创建一个对数组实现和链表实现都通用的接口。
但是,我不确定这种数据类型的结构。我应该包括什么?
struct test {
int x;
char y;
};
类似的东西?或者说我把集合设为整数独占,数据结构会涉及什么?
我们将不胜感激。谢谢!
【问题讨论】:
-
需要更多信息。您是在考虑数学意义上的有限集(允许重复元素),还是
set(),如 Python/Java/等。 (只有独特的元素)?您是否正在尝试选择一种数据结构来优化add()和remove()操作,或者可能是像union()或intersect()这样的其他操作?为什么使用数组和链表?您有许多数据结构可供选择,为什么“必须”用这些来实现? -
我在用数学的方式思考。基本上,我所要做的就是添加或删除一个元素,然后尝试诸如 check_if_element_is_present()、union()、intersection()、cardinality() 之类的函数......
-
基本上,我需要创建一个动态集合 ADT 并使用数组和链表实现它,但我很困惑,不知道从哪里开始,真的。
-
我的问题是,你必须使用 C 还是可以使用 C++?您必须使用数组/列表,还是可以使用树/哈希表?这是作业吗?
-
是的,这是我在学校从事的一个项目。必须使用 C 并且仅限于数组和链表。