Results 1 
9 of
9
Making Data Structures Persistent
, 1989
"... This paper is a study of persistence in data structures. Ordinary data structures are ephemeral in the sense that a change to the structure destroys the old version, leaving only the new version available for use. In contrast, a persistent structure allows access to any version, old or new, at any t ..."
Abstract

Cited by 250 (6 self)
 Add to MetaCart
This paper is a study of persistence in data structures. Ordinary data structures are ephemeral in the sense that a change to the structure destroys the old version, leaving only the new version available for use. In contrast, a persistent structure allows access to any version, old or new, at any time. We develop simple, systematic, and effiient techniques for making linked data structures persistent. We use our techniques to devise persistent forms of binary search trees with logarithmic access, insertion, and deletion times and O(1) space bounds for insertion and deletion.
Hierarchical representations of collections of small rectangles
 ACM Computing Surveys
, 1988
"... A tutorial survey is presented of hierarchical data structures for representing collections of small rectangles. Rectangles are often used as an approximation of shapes for which they serve as the minimum rectilinear enclosing object. They arise in applications in cartography as well as very larges ..."
Abstract

Cited by 24 (1 self)
 Add to MetaCart
A tutorial survey is presented of hierarchical data structures for representing collections of small rectangles. Rectangles are often used as an approximation of shapes for which they serve as the minimum rectilinear enclosing object. They arise in applications in cartography as well as very largescale integration (VLSI) design rule checking. The different data structures are discussed in terms of how they support the execution of queries involving proximity relations. The focus is on intersection and subset queries. Several types of representations are described. Some are designed for use with the planesweep paradigm, which works well for static collections of rectangles. Others are oriented toward dynamic collections. In this case, one representation reduces each rectangle to a point in a higher multidimensional space and treats the problem as one involving point data. The other representation is area basedthat is, it depends on the physical extent of each rectangle.
A Simple Balanced Search Tree With O(1) WorstCase Update Time
"... In this paper we show how a slight modification of (a; b)trees allows us to perform member and neighbor queries in O(log n) time and updates in O(1) worstcase time (once the position of the inserted or deleted key is known). Our data structure is quite natural and much simpler than previous worst ..."
Abstract

Cited by 20 (0 self)
 Add to MetaCart
In this paper we show how a slight modification of (a; b)trees allows us to perform member and neighbor queries in O(log n) time and updates in O(1) worstcase time (once the position of the inserted or deleted key is known). Our data structure is quite natural and much simpler than previous worstcase optimal solutions. It is based on two techniques : 1) bucketing, i.e. storing an ordered list of 2 log n keys in each leaf of an (a; b) tree, and 2) lazy splitting, i.e. postponing necessary splits of big nodes until we have time to handle them. It can also be used as a finger tree with O(log n) worstcase update time. 1 . Introduction One of the most common (and most important) data structures used in efficient algorithms is the balanced search tree. Hence there exists a great variety of them in literature. Basically, they all store a set of n keys such that location, insertion and deletion of keys can be accomplished in O(log n) worstcase time. In general, updates (insertions or ...
Dynamic Trees as Search Trees via Euler Tours, Applied to the Network Simplex Algorithm
 Mathematical Programming
, 1997
"... The dynamic tree is an abstract data type that allows the maintenance of a collection of trees subject to joining by adding edges (linking) and splitting by deleting edges (cutting), while at the same time allowing reporting of certain combinations of vertex or edge values. For many applications of ..."
Abstract

Cited by 13 (1 self)
 Add to MetaCart
The dynamic tree is an abstract data type that allows the maintenance of a collection of trees subject to joining by adding edges (linking) and splitting by deleting edges (cutting), while at the same time allowing reporting of certain combinations of vertex or edge values. For many applications of dynamic trees, values must be combined along paths. For other applications, values must be combined over entire trees. For the latter situation, we show that an idea used originally in parallel graph algorithms, to represent trees by Euler tours, leads to a simple implementation with a time of O(log n) per tree operation, where n is the number of tree vertices. We apply this representation to the implementation of two versions of the network simplex algorithm, resulting in a time of O(log n) per pivot, where n is the number of vertices in the problem network.
Binary Search Trees of Almost Optimal Height
 ACTA INFORMATICA
, 1990
"... First we present a generalization of symmetric binary Btrees, SBB(k) trees. The obtained structure has a height of only \Sigma (1 + 1k) log(n + 1)\Upsilon, where k may be chosen to be any positive integer. The maintenance algorithms require only a constant number of rotations per updating operati ..."
Abstract

Cited by 11 (1 self)
 Add to MetaCart
First we present a generalization of symmetric binary Btrees, SBB(k) trees. The obtained structure has a height of only \Sigma (1 + 1k) log(n + 1)\Upsilon, where k may be chosen to be any positive integer. The maintenance algorithms require only a constant number of rotations per updating operation in the worst case. These properties together with the fact that the structure is relatively simple to implement makes it a useful alternative to other search trees in practical applications. Then, by using an SBB(k)tree with a varying k we achieve a structure with a logarithmic amortized cost per update and a height of log n + o(log n). This result is an improvement of the upper bound on the height of a dynamic binary search tree. By maintaining two trees simultaneously the amortized cost is transformed into a worstcase cost. Thus, we have improved the worstcase complexity of the dictionary problem.
RankBalanced Trees
"... Abstract. Since the invention of AVL trees in 1962, a wide variety of ways to balance binary search trees have been proposed. Notable are redblack trees, in which bottomup rebalancing after an insertion or deletion takes O(1) amortized time and O(1) rotations worstcase. But the design space of ba ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
Abstract. Since the invention of AVL trees in 1962, a wide variety of ways to balance binary search trees have been proposed. Notable are redblack trees, in which bottomup rebalancing after an insertion or deletion takes O(1) amortized time and O(1) rotations worstcase. But the design space of balanced trees has not been fully explored. We introduce the rankbalanced tree, a relaxation of AVL trees. Rankbalanced trees can be rebalanced bottomup after an insertion or deletion in O(1) amortized time and at most two rotations worstcase, in contrast to redblack trees, which need up to three rotations per deletion. Rebalancing can also be done topdown with fixed lookahead in O(1) amortized time. Using a novel analysis that relies on an exponential potential function, we show that both bottomup and topdown rebalancing modify nodes exponentially infrequently in their heights. 1
Efficient implementation of redblack trees with split and catenate operations
, 2005
"... We describe the implementation of the Multiset classtemplate within the support library of Cgal, the Computational Geometry Algorithms ’ Library. The interface of this class is inspired by the multiset classtemplate included in the standard template library (Stl). Both class templates are implemen ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
We describe the implementation of the Multiset classtemplate within the support library of Cgal, the Computational Geometry Algorithms ’ Library. The interface of this class is inspired by the multiset classtemplate included in the standard template library (Stl). Both class templates are implemented in terms of redblack trees, yet they differ from one another quite substantially. In this report we highlight the differences between the two class templates and show the advantages of our implementation. 1
Concurrent Perfect Balancing of Binary Search Trees
"... When a balanced data structure is updated and searched concurrently, updating and balancing should be decoupled so as to make updating faster. The balancing is done by special maintenance processes that run concurrently with the search and update tasks. We show that it is not necessary to use a wea ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
When a balanced data structure is updated and searched concurrently, updating and balancing should be decoupled so as to make updating faster. The balancing is done by special maintenance processes that run concurrently with the search and update tasks. We show that it is not necessary to use a weak balance condition like AVL or redblack condition, since balancing a binary tree perfectly so that the search paths become as short as possible is not much more expensive, that is, a process must lock only 5 nodes at a time even when perfect balance is desired. In contrast to other algorithms that perfectly balance a binary search tree, our algorithm keeps the tree (weakly) balanced during the further balancing. This is important if the data structure is used by concurrent search and update processes.
Skip Lifts: A Probabilistic Alternative to RedBlack Trees
"... Abstract. We present the Skip lifts, a randomized dictionary data structure inspired from the skip list [Pugh ’90, Comm. of the ACM]. Similarly to the skip list, the skip lifts has the finger search property: Given a pointer to an arbitrary element f, searching for an element x takes expected O(log ..."
Abstract
 Add to MetaCart
Abstract. We present the Skip lifts, a randomized dictionary data structure inspired from the skip list [Pugh ’90, Comm. of the ACM]. Similarly to the skip list, the skip lifts has the finger search property: Given a pointer to an arbitrary element f, searching for an element x takes expected O(log δ) time where δ is the rank distance between the elements x and f. The skip lifts uses nodes of O(1) worstcase size and it is one of the few efficient dictionary data structures that performs an O(1) worstcase number of structural changes during an update operation. Given a pointer to the element to be removed from the skip lifts the deletion operation takes O(1) worstcase time. 1