About: Threaded binary tree is a research topic. Over the lifetime, 265 publications have been published within this topic receiving 3862 citations. The topic is also known as: threaded tree.
TL;DR: FTT is applied to the integration of the Euler equations of fluid dynamics and an adaptive-mesh time-stepping algorithm is described in which different time steps are used at different levels of the tree.
Abstract: A fully threaded tree (FTT) for adaptive refinement of regular meshes is described. By using a tree threaded at all levels, tree traversals for finding nearest neighbors are avoided. All operations on a tree including tree modifications are O(N), where N is a number of cells, and are performed in parallel. An efficient implementation of the tree is described that requires 2N words of memory. A filtering algorithm for removing high-frequency noise during mesh refinement is described.
A FTT can be used in various numerical applications. In this paper, it is applied to the integration of the Euler equations of fluid dynamics. An adaptive-mesh time stepping algorithm is described in which different time steps are used at different levels of the tree. Time stepping and mesh refinement are interleaved to avoid extensive buffer layers of fine mesh which were otherwise required ahead of moving shocks. Test examples are presented, and the FTT performance is evaluated. The three-dimensional simulation of the interaction of a shock wave and a spherical bubble is carried out that shows the development of azimuthal perturbations on the bubble surface.
TL;DR: This paper describes the first complete implementation of a non-blocking binary search tree in an asynchronous shared-memory system using single-word compare-and-swap operations.
Abstract: This paper describes the first complete implementation of a non-blocking binary search tree in an asynchronous shared-memory system using single-word compare-and-swap operations. The implementation is linearizable and tolerates any number of crash failures. Insert and Delete operations that modify different parts of the tree do not interfere with one another, so they can run completely concurrently. Find operations only perform reads of shared memory.
TL;DR: A new lock-free algorithm for concurrent manipulation of a binary search tree in an asynchronous shared memory system that supports search, insert and delete operations and significantly outperforms all other algorithms for a concurrent binarysearch tree in many cases.
Abstract: We present a new lock-free algorithm for concurrent manipulation of a binary search tree in an asynchronous shared memory system that supports search, insert and delete operations. In addition to read and write instructions, our algorithm uses (single-word) compare-and-swap (CAS) and bit-test-and-set (SETB) atomic instructions, both of which are commonly supported by many modern processors including Intel~64 and AMD64.In contrast to existing lock-free algorithms for a binary search tree, our algorithm is based on marking edges rather than nodes. As a result, when compared to other lock-free algorithms, modify (insert and delete) operations in our algorithm work on a smaller portion of the tree, thereby reducing conflicts, and execute fewer atomic instructions (one for insert and three for delete). Our experiments indicate that our lock-free algorithm significantly outperforms all other algorithms for a concurrent binary search tree in many cases, especially when contention is high, by as much as 100%.
TL;DR: This paper examines several aspects of the binary tree structure as it relates to both multiprocessor systems and to VISI circuit design, and presents an algorithm for mapping an arbitrary binary tree onto the plane.
Abstract: The binary tree is a natural way to organize complex computations by a computer. For problems that can be naturally divided into a tree structure, a great deal of parallelism may be employed. In this paper we examine several aspects of the binary tree structure as it relates to both multiprocessor systems and to VISI circuit design. First, we present an algorithm for mapping an arbitrary binary tree onto the plane. An analysis shows the density of this mapping. Second, we consider the problem of routing messages within a binary tree under the assumption that certain nodes may be faulty. Finally, we analyze the binary tree's capacity to transfer information between nodes and we compare it to the capacity of the linear array and the grid.
TL;DR: A function and its inverse below which realize the binary tree numbering system just described are presented and are only concerned with the "shape" of a binary tree.
Abstract: corresponding to p. The function rank must be in-vertible so that p can be obtained from rank(p). Moreover , it is desirable that the range of rank be a segment of consecutive integers and that rank preserve a natural binary tree ordering. Such a function allows an n-node binary tree to be represented as a single integer. This saving of space and collapsing of structure is sometimes convenient. It also can be used to generate all n-node binary trees or a random n-node binary tree. The use of such a function for these purposes, must be balanced, however, against the possibility that both derived schemes may be inferior to other more specialized methods. We present a function and its inverse below which realize the binary tree numbering system just described. We are only concerned with the \"shape\" of a binary tree. Any labels of the nodes are irrelevant. Thus the 14 distinct 4-node binary trees may be given in order as: \\ 1 2 3 4 5 6 7