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

..03-May-2022-

MakefileH A D08-Nov-2021562 2815

READMEH A D08-Nov-20211.2 KiB3621

binaryheap.cH A D08-Nov-20216.8 KiB308155

bipartite_match.cH A D08-Nov-20214.1 KiB181116

bloomfilter.cH A D08-Nov-20219.3 KiB296119

dshash.cH A D08-Nov-202126.7 KiB900526

hyperloglog.cH A D08-Nov-20216.9 KiB256102

ilist.cH A D08-Nov-20212.4 KiB11261

integerset.cH A D08-Nov-202129.2 KiB1,046518

knapsack.cH A D08-Nov-20213.1 KiB11254

pairingheap.cH A D08-Nov-20217.7 KiB334178

rbtree.cH A D08-Nov-202118.3 KiB771418

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
16integerset.c - a data structure for holding large set of integers
17
18knapsack.c - knapsack problem solver
19
20pairingheap.c - a pairing heap
21
22rbtree.c - a red-black tree
23
24stringinfo.c - an extensible string type
25
26
27Aside from the inherent characteristics of the data structures, there are a
28few practical differences between the binary heap and the pairing heap. The
29binary heap is fully allocated at creation, and cannot be expanded beyond the
30allocated size. The pairing heap on the other hand has no inherent maximum
31size, but the caller needs to allocate each element being stored in the heap,
32while the binary heap works with plain Datums or pointers.
33
34The linked-lists in ilist.c can be embedded directly into other structs, as
35opposed to the List interface in nodes/pg_list.h.
36