Dynamic Trees in Data Structure (original) (raw)

A data structure for dynamic trees

Journal of Computer and System Sciences, 1983

A data structure is proposed to maintain a collection of vertex-disjoint trees under a sequence of two kinds of operations: a link operation that combines two trees into one by adding an edge, and a cut operation that divides one tree into two by deleting an edge. Each operation requires O(log n) time. Using this data structure, new fast algorithms are obtained for the following problems: (1) Computing nearest common ancestors. (2) Solving various network flow problems including finding maximum flows, blocking (3) Computing certain kinds of constrained minimum spanning trees. (4) Implementing the network simplex algorithm for minimum-cost flows. flows, and acyclic flows. The most significant application is (2); an O(mn log n)-time algorithm is obtained to find a maximum flow in a network of n vertices and m edges, beating by a factor of log n the fastest algorithm previously known for sparse graphs.

Dynamic trees in practice

ACM Journal of Experimental Algorithmics, 2009

Dynamic tree data structures maintain forests that change over time through edge insertions and deletions. Besides maintaining connectivity information in logarithmic time, they can support aggregation of information over paths, trees, or both. We perform an experimental comparison of several versions of dynamic trees: ST-trees, ET-trees, RC-trees, and two variants of top trees (self-adjusting and worst-case). We quantify their strengths and weaknesses through tests with various workloads, most stemming from practical applications. We observe that a simple, linear-time implementation is remarkably fast for graphs of small diameter, and that worst-case and randomized data structures are best when queries are very frequent. The best overall performance, however, is achieved by self-adjusting ST-trees.

Comparison of Advance Tree Data Structures

B-tree and R-tree are two basic index structures; many different variants of them are proposed after them. Different variants are used in specific application for the performance optimization. In this paper different variants of B-tree and R-tree are discussed and compared. Index structures are different in terms of structure, query support, data type support and application. Index structure’s structures are discussed first. B-tree and its variants are discussed and them R-tree and its variants are discussed. Some structures example is also shown for the more clear idea. Then comparison is made between all structure with respect to complexity, query type support, data type support and application.

Design of data structures for mergeable trees

Proceedings of the seventeenth annual ACM-SIAM symposium on Discrete algorithm - SODA '06, 2006

Motivated by an application in computational topology, we consider a novel variant of the problem of efficiently maintaining dynamic rooted trees. This variant allows an operation that merges two tree paths. In contrast to the standard problem, in which only one tree arc at a time changes, a single merge operation can change many arcs. In spite of this, we develop a data structure that supports merges and all other standard tree operations in O(log 2 n) amortized time on an n-node forest. For the special case that occurs in the motivating application, in which arbitrary arc deletions are not allowed, we give a data structure with an O(log n) amortized time bound per operation, which is asymptotically optimal. The analysis of both algorithms is not straightforward and requires ideas not previously used in the study of dynamic trees. We explore the design space of algorithms for the problem and also consider lower bounds for it.

Processing Tree-like Data Structures in Different Computing Platforms

The paper analyzes and compares three different computing platforms for processing tree-like data structures, namely: general purpose computers, embedded processors, and direct mapping of the relevant algorithms to hardware in application-specific circuits. Tree-based recursive data sorting is considered as a case study. The results demonstrate that application-specific hardware is the fastest and processorbased implementation is the slowest. This gives motivation for developing new optimization techniques in the scope of application-specific hardware circuits, which is especially beneficial for FPGA-based design.

Data structures for mergeable trees

ACM Transactions on Algorithms, 2011

Motivated by an application in computational geometry, we consider a novel variant of the problem of efficiently maintaining a forest of dynamic rooted trees. This variant includes an operation that merges two tree paths. In contrast to the standard problem, in which a single operation can only add or delete one arc, one merge can add and delete up to a linear number of arcs. In spite of this, we develop three different methods that need only polylogarithmic time per operation. The first method extends a solution of Farach and Thorup [1998] for the special case of paths. Each merge takes O (log 2 n ) amortized time on an n -node forest and each standard dynamic tree operation takes O (log n ) time; the latter bound is amortized, worst case, or randomized depending on the underlying data structure. For the special case that occurs in the motivating application, in which arbitrary arc deletions (cuts) do not occur, we give a method that takes O (log n ) time per operation, including m...

Furnish an Index Using the Works of Tree Structures

We consider two tree-based indexing schemes that are widely used in practical systems as the basis for both primary and secondary key indexing. We define B-tree and its features, advantages, disadvantages of B-tree. The difference between B+-tree and B-tree has also been discussed. We show the algorithm, examples and figures in the context of B+-tree.

Construction of Tree-based Indexes for

In multimedia databases, the spatial index structures based on trees (like R-tree, M-tree) have been proved to be efficient and scalable for low-dimensional data retrieval. However, if the data dimensionality is too high, the hierarchy of nested regions (represented by the tree nodes) becomes spatially indistinct. Hence, the query processing deteriorates to inefficient index traversal (in terms of random-access I/O costs) and in such case the tree-based indexes are less efficient than the sequential search. This is mainly due to repeated access to many nodes at the top levels of the tree. In this paper we propose a modified storage layout of tree-based indexes, such that nodes belonging to the same tree level are stored together. Such level-ordered storage allows to prefetch several top levels of the tree to the buffer pool by only a few or even a single contiguous I/O operation (i.e. one-seek read). The experimental results show that our approach can speedup the tree-based search significantly.

Usage of Data Structures In Presenting a Tree Structure for Storing and Searching Large Lists Of Order

Usage of Data Structures In Presenting a Tree Structure for Storing and Searching Large Lists Of Order, 2019

This paper tries to throw light in the usage of data structures in the field of information retrieval. Information retrieval is an area of study which is gaining momentum as the need and urge for sharing and exploring information is growing day by day. Data structures have been the area of research for a long period in the arena of computer science. The need to have efficient data structures has become even more important as the data grows in an exponential nature. Sort the list of greatest concern is that mathematicians are working on optimizing the algorithms. Sort the list so far using linear arrays was performed. Due to the limited size of the linear array and traverse difficult time sorting this type of data structure and it was not desired. Sorting in linear lists must be scanned once for each element and other elements to be compared thus, when about twice the size of the list to sort the list (O () to spend scrolling up to search for the elements as we move toward the desired element. The best way to split the original list into two smaller lists with this action against O (Logn) to be spent. In this paper has presented a tree structure for storing and searching that can order large lists in O (n) order time. It also has a search feature in the list of possible list elements do not depend on the size and type of the list is the same time (O (1)).

Fast algorithm for constructing incremental tree data structure

A compact data structure to keep large transactions is very important. One of the alternatives is to use tree data structure. However, not all of them can effort to handle the incremental online transactions and still limited to offline processes such as to build frequent pattern tree (FP-Tree). The main drawback of typical FP-Tree is it must rely on the offline databases. Therefore, this paper suggested Fast Online Trie Algorithm (FOLTA) to build our predefined incremental tree data structure, Disorder Support Trie Itemset (DOSTrieIT). Experiments with the UCI datasets show that the FOLTA can replace th e dependency of offline database, up to 2 times faster than the benchmarked CanTree algorithm.