【问题标题】:Data Structure Terminology? [closed]数据结构术语? [关闭]
【发布时间】:2012-11-22 14:31:04
【问题描述】:

我有很多关于数据结构词汇的问题。我确定我知道这些是什么/做什么,但是我没有学习它们的适当术语或者我忘记了它们,所以当有人在解释中使用它们时,我对它们的确切含义感到困惑。

在课堂上,我们正在处理哈希表,并且出现了术语“key”和“bucket”。我试着找出它们的意思,到目前为止我所理解的是,一个键是指哈希表中的一个元素,而一个桶是指哈希表中的某个位置。 例如,HashTable[index] 指的是一个桶(哈希表中的“行”,如果你愿意的话)。如果哈希表中的那个点包含一个链(并且链表由相互连接的“块”组成),那么一个键将是该链中的单个“块”。那是对的吗? (如您所知,我也忘记了链表中的“块”一词)

在另一个主题上,我们也在今年早些时候处理摊销翻倍,我不知道“摊销分析”指的是什么。

我知道其中一些问题可能看起来很愚蠢,但我想正确使用我的术语。 (当有人在解释某事时使用不正确的术语时,我无法强调这是多么令人沮丧。就像我的 Calc 教授将“做点积”称为“与向量结合”时)

提前致谢。

【问题讨论】:

  • 这些都不是真正的 C++ 术语。这些都是关于数据结构和算法理论的通用术语,我现在不想解释,因为维基百科解释得更好。
  • 有些人把链表实体称为节点
  • 买个记事本,把这些东西记下来。这就是我在 Uni 所做的,并创建了我自己的小字典。
  • 尽量每篇文章只问一个问题。

标签: data-structures language-agnostic terminology


【解决方案1】:

这实际上不是 C++ 术语。 C++ 有一个叫做 unordered_map 的东西,它提供类似哈希表的功能,但“哈希表”、“桶”、“键”和其他术语是通用的计算机科学/编程数据结构和算法术语。

请参阅http://en.wikipedia.org/wiki/Hash_table 了解更多详细信息,并注意文章中几乎没有提到 C++。

【讨论】:

  • +1,但我要指出 C++11 标准规定 unordered_map 等人使用 chaining 作为冲突解决机制,从而规定了使用桶。这样,“bucket”可能会被认为是一个 C++ 术语,有点像。
  • 术语bucket在C++标准中定义和使用:“无序关联容器的元素被组织成buckets。具有相同哈希码的键出现在同一个桶。”事实上,有些迭代器只遍历一个桶。
  • @JohnDibling 仅限于“门”是汽车术语。
  • sftrabbit 是唯一提供明确帮助的人。谢谢!其他人只是争论这是否是 C++ 术语,我现在意识到它不是。感谢 Dan J 不必要的粗鲁。
  • 在我们的辩护中,我只想指出您最初的问题是关于“C++ 术语”,我们试图帮助您理解 C++ 术语。此后,您更改了问题的标题和内容。很抱歉,我们的回答没有提供您真正想要的信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-12
  • 1970-01-01
  • 2018-12-22
  • 2011-08-20
  • 2020-01-25
  • 2011-04-17
相关资源
最近更新 更多