2012-12-04 32 views
-2

我對數據結構詞彙表有很多疑問。我確信我知道這些是/做什麼,但我沒有爲他們學習適當的條款,或者我忘了他們,所以當有人在解釋他們時使用他們,我很困惑他們究竟是什麼意思。數據結構術語?

在課堂上,我們正在處理哈希表,'鑰匙'和'桶'這兩個術語出現了。我試着找出它們的含義,到目前爲止,我所理解的是一個鍵指的是散列表中的一個元素,而一個桶指的是散列表中的某個地方。 例如,HashTable [index]引用一個存儲桶(如果您願意的話,它是散列表中的'行')。如果散列表中的那個點包含一個鏈(並且鏈接列表由'塊'互連組成),那麼一個鍵將是該鏈中的單個「塊」。那是對的嗎? (正如你所看到的,我也忘記了鏈接列表中的'塊'這一術語)

而在另一個話題上,我們也在處理年初的攤銷加倍,我不知道'分期償還分析「是指。

我知道其中的一些可能看起來像愚蠢的問題,但我想讓我的術語正確。 (當我解釋某事時有人使用不正確的術語,比如我的計算教授提到'做點積'作爲'結合載體')時,我不會強調它有多麼令人沮喪。

在此先感謝。

+0

http://en.wikipedia.org/wiki/Amortized_analysis? – chris

+1

這些都不是真正的C++術語。這是關於數據結構和算法理論的所有通用術語,我不想現在解釋,因爲維基百科解釋得更好。 – Philipp

+1

有人將鏈表實體稱爲節點 – vmpstr

回答

3

這實際上不是C++術語。 C++有一個叫做unordered_map的東西,它提供類似散列表的功能,但是「散列表」,「桶」,「鍵」和其他術語都是通用的計算機科學/編程數據結構和算法術語。

有關更多詳細信息,請參見http://en.wikipedia.org/wiki/Hash_table,並注意文中幾乎沒有提及C++。

+0

+1,但我會指出,C++ 11標準規定'unordered_map'等人使用* chaining *作爲衝突解決機制,從而規定使用桶。通過這種方式,「桶」可能被認爲是C++術語,有點不同。 –

+0

術語bucket是在C++標準中定義和使用的:「無序關聯容器的元素組織成*桶*,具有相同哈希代碼的鍵出現在同一個桶中。」事實上,有迭代器只能遍歷一個桶。 –

+0

@JohnDibling只有與「門」是汽車術語的程度相同。 –