• Corpus ID: 758171

Constructing Red−Black Trees

@inproceedings{Hinze1999ConstructingRT,
  title={Constructing Red−Black Trees},
  author={Ralf Hinze},
  year={1999}
}
  • R. Hinze
  • Published 1999
  • Mathematics, Computer Science
This paper explores the structure of red-black trees by solv ing an apparently simple problem: given an ascending sequence of elements, construct, in linear tim e, a red-black tree that contains the elements in symmetric order. Several extreme red-black tree shapes are ch acterized: trees of minimum and maximum height, trees with a minimal and with a maximal proportion of red nodes. These characterizations are obtained by relating tree shapes to various number systems. In addition, connections… 

Figures from this paper

Purely Functional 1-2 Brother Trees
  • R. Hinze
  • Computer Science
    Journal of Functional Programming
  • 2009
TLDR
This pearl looks at a more exotic species of balanced search trees, 1-2 brother trees (Ottmann et al. 1979), which deserves to be better known and is one of the fastest around.
On constructing 2-3 trees
  • R. Hinze
  • Computer Science, Mathematics
    Journal of Functional Programming
  • 2018
TLDR
The incremental approach is more flexible than the other two in that it allows us to interleave the construction work with other operations, for example, queries.
Efficient Verified Red-Black Trees
I present a new implementation of balanced binary search trees, compatible with the MSets interface of the Coq Standard Library. Like the current Library implementation, mine is formally verified (in
Red-black trees with types
  • Stefan Kahrs
  • Computer Science
    Journal of Functional Programming
  • 2001
TLDR
It is shown how one can achieve something very similar without the usual performance penalty of such types, by combining the features of nested datatypes, phantom types and existential type variables.
Deletion: The curse of the red-black tree
TLDR
This work conceptually simplify deletion by temporarily introducing a “double-black” color into Okasaki's tree type, which significantly simplifies the preservation of invariants during deletion.
An Algebra of Scans
TLDR
Using only two basic building blocks and four combinators all standard designs can be described succinctly and rigorously and the rules of the algebra allow us to prove the circuits correct and to derive circuit designs in a systematic manner.
Associative-Commutative Rewriting on Large Terms
We introduce a novel representation for associative-commutative (AC) terms which, for certain important classes of rewrite rules, allows both the AC matching andthe AC renormalization steps to be
More on balanced diets
TLDR
Algorithm for set-theoretic operations like intersection, union, etc. on sets represented as balanced diets are introduced and it is shown that these algorithms can outperform previously known algorithms on sets, such as the ones implemented in OCaml's standard library.
Under Consideration for Publication in J. Functional Programming 1 Manufacturing Datatypes
This article describes a general framework for designing purely functional datatypes that automatically satisfy given size or structural constraints. Using the framework we develop implementations of
Manufacturing datatypes
  • R. Hinze
  • Computer Science
    J. Funct. Program.
  • 2001
TLDR
A general framework for designing purely functional datatypes that automatically satisfy given size or structural constraints is described, namely to generate the multiset of all square numbers.
...
...

References

SHOWING 1-10 OF 24 REFERENCES
Red-black trees in a functional setting
  • Chris Okasaki
  • Computer Science
    Journal of Functional Programming
  • 1999
TLDR
An algorithm for insertion into red-black trees (Guibas and Sedgewick, 1978) that any competent programmer should be able to implement in fifteen minutes or less is presented.
FUNCTIONAL PEARL On building trees with minimum height
  • R. Bird
  • Computer Science
    Journal of Functional Programming
  • 1997
TLDR
The old problem of building trees of minimum height as an optimisation problem is rephrase and the greedy theorem is applied to derive a linear time algorithm.
A New Class of Balanced Search Trees: Half Balanced Binary Search Trees
  • H. Olivié
  • Computer Science
    RAIRO Theor. Informatics Appl.
  • 1982
TLDR
A new classojbalancedbinary search trees is introduced: the half-balanced binary trees, having time complexity O(lg n).
A Characterization of Heaps and Its Applications
A new representation for linear lists
TLDR
A key idea is the construction of a number representation behaving as described above, which can be used to model the propagation of modifications in the B-tree along the finger path, with the advantage that access is cheap in the neighborhood of each finger.
Explaining binomial heaps
  • R. Hinze
  • Computer Science
    Journal of Functional Programming
  • 1999
TLDR
It is shown that binomial heaps arise naturally through a number of logical steps, using the metaphor of a tennis tournament, and Haskell supports the deductive style of presentation very well.
Data structures, algorithms, and performance
TLDR
This famous book will not become a unity of the way for you to get amazing benefits at all, but, it will serve something that will let you get the best time and moment for reading the book.
Purely functional data structures
TLDR
This work describes several techniques for designing functional data structures, and numerous original data structures based on these techniques, including multiple variations of lists, queues, double-ended queues, and heaps, many supporting more exotic features such as random access or efficient catenation.
Functional Data Structures
  • Chris Okasaki
  • Computer Science
    Handbook of Data Structures and Applications
  • 1996
The Art of Computer Programming, Volume 3, Sorting and Searching
...
...