• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

MakefileH A D08-Nov-2021539 196

READMEH A D08-Nov-20211.1 KiB3420

binaryheap.cH A D08-Nov-20216.8 KiB308155

bipartite_match.cH A D08-Nov-20214.1 KiB181116

bloomfilter.cH A D08-Nov-20219.4 KiB307128

dshash.cH A D08-Nov-202126.6 KiB900526

hyperloglog.cH A D08-Nov-20216.9 KiB253101

ilist.cH A D08-Nov-20212.4 KiB11261

knapsack.cH A D08-Nov-20213.1 KiB11254

pairingheap.cH A D08-Nov-20217.7 KiB334178

rbtree.cH A D08-Nov-202118.3 KiB771418

stringinfo.cH A D08-Nov-20217.7 KiB309124

README

1This directory contains a general purpose data structures, for use anywhere
2in the backend:
3
4binaryheap.c - a binary heap
5
6bipartite_match.c - Hopcroft-Karp maximum cardinality algorithm for bipartite graphs
7
8bloomfilter.c - probabilistic, space-efficient set membership testing
9
10dshash.c - concurrent hash tables backed by dynamic shared memory areas
11
12hyperloglog.c - a streaming cardinality estimator
13
14ilist.c - single and double-linked lists
15
16knapsack.c - knapsack problem solver
17
18pairingheap.c - a pairing heap
19
20rbtree.c - a red-black tree
21
22stringinfo.c - an extensible string type
23
24
25Aside from the inherent characteristics of the data structures, there are a
26few practical differences between the binary heap and the pairing heap. The
27binary heap is fully allocated at creation, and cannot be expanded beyond the
28allocated size. The pairing heap on the other hand has no inherent maximum
29size, but the caller needs to allocate each element being stored in the heap,
30while the binary heap works with plain Datums or pointers.
31
32The linked-lists in ilist.c can be embedded directly into other structs, as
33opposed to the List interface in nodes/pg_list.h.
34