The binary search tree is one of the most fundamental data structures for dynamic datasets that is used in computer programming. In a binary search tree, every node has a value called a key. The values of all the nodes in a nodeâs left sub tree are less than (or â¤) the nodeâs value, and the values of all the nodes in its right sub tree are greater than the nodeâs value. The binary search tree can support numerical data, character strings, and any other data types for which an order can be defined. It provides an efficient way to store a dataset the size of which is unknown beforehand or changes dynamically. The binary search tree usually provides insertion, searching and deletion as basic operations, which take O(log n) in general (O(n) at worst) for each operation. Some forms of binary search trees such as AVL and Red-Black trees can improve searching performance speed by automatically maintaining the balance of the trees as nodes are inserted or deleted. Parallel computing allows time cost savings. For standard binary trees, however, operations cannot be parallelized directly because race conditions exist when different threads try to insert different children nodes to the same parent node, or when some thread tries to read one node that another thread tries to delete. Researchers have tried to add parallel capability to the binary search trees through changes to the data structure and the corresponding algorithm. For example, the parallel construction of a multidimensional binary search tree was implemented on distributed memory parallel computers to solve applications requiring multidimensional values as keys for the nodes. The overhead of finding the medians of all the nodes could be eased by using âsorting onceâ or bucket-based strategies. Unfortunately, this solution was designed for distributed memory parallel computers; most current computers are âshared memoryâ systems. In that light, Solworth and Reagan have performed research to determine the amount of achievable parallelism in operations of a generic tree structure in a shared memory environment. (A Parallelized Binary Search Tree, Jian Feng)
Last date updated on April, 2024