arrays - 数据结构的选择

标签 arrays algorithm data-structures computer-science hashtable

我在 CS GRE 样本测试中发现了以下问题,但无法确定它是 a) 还是 e) 谁能指出它是哪一个?

提前致谢

哪种数据结构最适合实现具有以下三个特征的值集合?

项目按照 FIFO 顺序从集合中检索和删除。 集合中的项目数量没有先验限制。 项目的大小相对于内存地址所需的存储来说很大。 A) 单链表,有头指针和尾指针 B) 双链表,只有头指针 C) 数组 D) 二叉树 E) 哈希表

最佳答案

  1. 项目按照 FIFO 顺序从集合中检索和删除。
  2. 集合中的项目数量没有先验限制。
  3. 相对于内存地址所需的存储空间,项目的大小较大。

鉴于要求 1 和 2,我会说 Singly-linked list ,带有头和尾指针是您最好的选择。您可以使用尾指针快速插入元素并使用头指针删除元素。

您可以根据一个或多个要求消除其他每个选项。

双向链表,只有一个头指针——只有一个头指针很难实现 FIFO 要求。

数组 - 对集合的大小施加先验限制,而其他数据结构则没有。

二叉树 - 不以方便实现 FIFO 的方式组织元素。

哈希表 - 使 FIFO 不可能实现。

关于arrays - 数据结构的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8028337/

相关文章:

c# - 如何找到集合的所有分区

algorithm - 人工智能 : How to find an evaluation function in this game (minimax algo)?

非交错存储元组的 C++ 容器

java - DataSource接口(interface)的HashMap实现: nextRow() method?

javascript - 为什么 if 语句会阻塞在 while 循环中?

c++ - 使用 XOR 加密字符串并使用 BSAFE(类似 OpenSSL 的库)对它们进行哈希处理

php - 字符串的渐进单词组合

algorithm - Scala 中具有不可变集合的素数的试验划分

php - 根据父/子关系对数组值进行排序

c++ - 调用函数传递数组