【问题标题】:What are these properties of a data structure called?数据结构的这些属性称为什么?
【发布时间】:2023-04-07 21:22:01
【问题描述】:

如果我有一些任意的数据结构,如果以下情况成立,我能对这个结构说什么:

(1) 如果我将五个元素放入一个数据结构中,那么就有可能以相同的顺序检索这五个元素。例如,如果我将数字 4、6、2 和 7 放入一个数组,并检索第一个元素,它将是 4。

(2) 如果我将五个元素(可以比较的)放入一个数据结构中,那么它们将始终按照某些标准进行排序。也就是说,如果标准是增加量级,我将 4、6、2 和 7 放入这个结构中,然后我检索第一个元素,它将是 2。

(3) 如果我将五个元素放入一个数据结构中,则我无法执行任何操作来确保我取回放入其中的第一个元素。

(4) 如果我把五个元素放进去,那么添加任何已经在结构中的元素都不会影响结构。

编辑:我不是在询问具有这些属性的数据结构的名称。一个类似于列表,2 将是二叉搜索树或其他东西,3 将是哈希,四个将是 HashSet 或许多其他不允许重复的集合实现。我正在询问财产名称。例如,能够说“对于这个问题,我们需要使用有序的数据结构......”

【问题讨论】:

  • @OliCharlesworth 不。我正在和一位朋友交谈,第一个用“ordered”,第二个用“sorted”,但他不同意这些描述是正确的。
  • (3) 称为垃圾回收
  • 有趣的问题,但不是真正的问题

标签: java collections set


【解决方案1】:

(1) 是有序的

(2) 可能是排序的

(3) 是无序的

(4) 不包含重复项

对不起,(4) 有点逃避现实,但这是我能想到的。

【讨论】:

  • Well 4 基本上是一个集合的定义。 不同对象的集合。不过也想不出任何形容词。 settiveness 有一个有趣的戒指,但我担心它不在任何字典中;)
【解决方案2】:

(1) FIFO:数据结构维护插入顺序

(2) 排序发生在数据结构中

(3) 不是属性,而是缺少属性。基于散列的结构可以做到这一点。除非您的意思是要保证元素将被打乱(毕竟您的常规 HashMap 是确定性的)。在这种情况下,它将是一个“随机化”或“洗牌”的集合。混音器。

(4) 一个集合,数据结构确保不同的元素(意味着发生比较、排序或散列)

【讨论】:

    【解决方案3】:

    (1) 是一个队列,(2) 一个排序列表,我不太明白你对 (3) 的意思,而 (4) 是一个集合。

    【讨论】:

    【解决方案4】:

    我认为不存在包含您列出的所有场景的数据结构。

    一般来说,如果你要实现这样的结构,它可以被称为抽象数据类型。使用这种数据类型,您可以提供所有功能,即抽象与上述场景相对应的工作。

    在 Java 中,List, Queue 等等都是抽象数据类型的示例。

    【讨论】:

    • 我不认为 OP 想要one structure to rule them all! (1) 和 (2) 已经互斥
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多