Binary Search Tree
Binary Search Tree
Ciencias de la Computacin
Binary Search Trees (BST)
Yuri Nuez Medrano *
[email protected]
1.2. Inorder_Tree_Walk
Algorithm 1: INORDER_TREE_WALK(x)
Input: Un nodo x
Output: Las keys del subrbol que tiene a x com raz
en orden ascendente
1 if x 6= T.nil then
2 INORDER_TREE_WALK(x.lef t)
Figura 1: Ejemplo de un BST
3 print x.key
4 INORDER_TREE_WALK(x.right)
1. Binary Search Tree
Un BST es una estructura de datos ligada cuyos nodos En resumen, este algoritmo imprime la key de la raz luego
poseen bsicamente cuatro variables: una key y tres apun- de imprimir los valores en su subrbol izquierdo y antes de
tadores lef t, right y p que apuntan a un nodo hijo izquierdo, imprimir los valores del subrbol derecho. Similarmente, un
un nodo hijo derecho y un nodo padre respectivamente. Las preorder tree walk imprime el key de la raz antes de
keys en un BST deben estar almacenadas de tal manera que las keys de los subrboles y un postorder tree walk la
siempre cumplan la propiedad BST. imprime despus.
1
2
Tambin podemos reescribir este algoritmo como uno ite- Algorithm 6: TREE_SUCCESSOR(x)
rativo. Input: Un nodo x
Output: El sucesor de x
Algorithm 3: ITERATIVE_TREE_SEARCH(x,k) 1 if x.right 6= N IL then
3.1. Insercin
Algorithm 7: TREE_INSERT(T , z)
Input: Un rbol T y un nodo z
1 y = N IL
2 x = T.root
3 while x 6= N IL do
4 y=x
5 if z.key < x.key then
6 x = x.lef t
7 else
8 x = x.right
9 z.p = y
10 if y = N IL then
11 T.root = z
12 else
13 if z.key < y.key then
14 y.lef t = z Figura 2: Eliminacin de Nodos - Caso 3. El primer cambio
15 else corresponde al primer subcaso y el segundo cambio corres-
16 y.right = z ponde al segundo subcaso