Skip to main content

Hash-based Structure Variants

Hash-based Data Structures

TypeDescriptionKey CharacteristicTypical Use CaseAccess PatternMemory BehaviorNotes
Hash TableKey–value storageO(1) average lookupDictionariesKey-basedBucket-basedCollision handling needed
Double HashingCollision resolutionTwo hash functionsOpen addressingKey-basedContiguousReduces clustering
Dynamic Perfect Hash TableCollision-free hashingRehash on growthStatic key setsKey-basedBucket-basedGuaranteed O(1)
Hash ListList of hashed entriesSimple chainingSmall mapsSequentialPointer-basedEasy implementation
Hash TreeTree of hashesIntegrity verificationBlockchainsPath-basedTree-basedMerkle variant
Hash Array Mapped TrieTrie + hashingPersistent mapFunctional languagesKey-basedNode-basedUsed in Clojure
CtrieConcurrent HAMTLock-free updatesConcurrent mapsKey-basedNode-basedThread-safe
Hahs TrieHash-based trieHybrid structureKey indexingKey-basedNode-basedRare, name varies
Prefix Hash TreePrefix-based hashingHierarchical hashesRouting, P2PPrefix-basedTree-basedScalable lookup
Distributed Hash TableDecentralized hash mapPeer-to-peer routingP2P networksKey-basedDistributedFault tolerant
KoordeRing-based DHTDe Bruijn routingP2P overlaysKey-basedDistributedEfficient hops
Approx. Membership FilterProbabilistic setFalse positives allowedFast membership testHash-basedCompactNo deletions (basic)
Bloom FilterBit-based AMQVery space efficientCaches, DBsHash-basedBit arrayFalse positives only
Cuckoo FilterFingerprint-based AMQSupports deletionNetworkingHash-basedCompactFaster than Bloom
Quotient FilterCompressed AMQCache-friendlyStorage systemsHash-basedCompactBloom alternative
Count-Min SketchFrequency estimatorApprox countsStreaming dataHash-basedCompactOverestimates
Rolling HashWindowed hashingFast recomputationString searchSequentialConstantUsed in Rabin–Karp
MinHashSimilarity hashingJaccard estimationNear-duplicate detectionHash-basedCompactProbabilistic