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 September, 2024