词条 | Ternary tree | ||||||||||
释义 |
In computer science, a ternary tree is a tree data structure in which each node has at most three child nodes, usually distinguished as "left", “mid” and "right". Nodes with children are parent nodes, and child nodes may contain references to their parents. Outside the tree, there is often a reference to the "root" node (the ancestor of all nodes), if it exists. Any node in the data structure can be reached by starting at root node and repeatedly following references to either the left, mid or right child. Ternary trees are used to implement Ternary search trees and Ternary heaps. Definition
Properties of ternary trees
– Let be height of a ternary tree. – Let be the maximum number of nodes in a ternary tree of height h
– – Every tree of height h has at most nodes.
Common operationsInsertionNodes can be inserted into ternary trees in between three other nodes or added after an external node. In Ternary trees, a node that is inserted is specified as to which child it is. External nodesSay that the external node being added onto is node A. To add a new node after node A, A assigns the new node as one of its children and the new node assigns node A as its parent. Internal nodesInsertion on internal nodes is more complex than on external nodes. Say that the internal node is node A and that node B is the child of A. (If the insertion is to insert a right child, then B is the right child of A, and similarly with a left child insertion or mid child.) A assigns its child to the new node and the new node assigns its parent to A. Then the new node assigns its child to B and B assigns its parent as the new node. DeletionDeletion is the process whereby a node is removed from the tree. Only certain nodes in a ternary tree can be removed unambiguously. Node with zero or one childSay that the node to delete is node A. If a node has no children (external node), deletion is accomplished by setting the child of A's parent to null and A's parent to null. If it has one child, set the parent of A's child to A's parent and set the child of A's parent to A's child. Comparison with other treesThe picture below is a binary search tree that represents 12 two-letter words. All nodes on the left child have smaller values, while all nodes on the right child have greater values for all nodes. A search starts from the root. To find the word "ON", we compare it to "IN" and take the right branch. Every comparison could access each character of both words. in / \\ be of / \\ / \\ as by is or \\ \\ \\ / \\ at he it on to Digital search tries to store strings character by character. The next picture is a tree that represents the same set of 12 words; _ _ _ _ _ _ _ _ _ _ _ _ _ / / / \\ \\ \\ / / / \\ \\ \\ a b h i o t / \\ / \\ | / | \\ /|\\ | s t e y e n s t f n r o as at be by he in is it of on or to each input word is shown beneath the node that represents it. In a tree representing words of lower case letters, each node has 26-way branching. Searches are very fast: A search for "IS" starts at the root, takes the "I" branch, then the "S" branch, and ends at the desired node. At every node, one accesses an array element, tests for null, and takes a branch. i / | \\ / | \\ b s o / | \\ / \\ | \\ a e h n t n t | \\ | / \\ | s y e f r o \\ t The above picture is a balanced ternary search tree for the same set of 12 words. The low and high pointers are shown as angled lines, while equal pointers are shown as vertical lines. A search for the word "IS" starts at the root, proceeds down the equal child to the node with value "S", and stops there after two comparisons. A search for "AX" makes three comparisons to the first letter "A" and two comparisons to the second letter "X" before reporting that the word is not in the tree.[1] Examples of ternary trees
See also
References1. ^Jon Bentley and Bob Sedgewick (1998), Dr. Dobb's Journal 2. ^{{cite arxiv|first=H. Lee|last=Price|title=The Pythagorean Tree: A New Species |year=2008|eprint=0809.4324 }} 1 : Trees (data structures) |
||||||||||
随便看 |
|
开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。