-- AUTOR: Elvira Mayordomo Cámara
-- PROYECTO: módulo de declaración del
-- TAD arboles binarios de búsqueda
-- FICHERO: abb.ads
-- FECHA: 14-11-03
-- Especificación árbolesBinariosBusqueda en fichero aparte
generic
type elemento is private;
with function "<="(Left, Right: elemento) return Boolean;
with procedure put(e: elemento);
package abb is
type arbin is limited private;
-- coste en memoria: un árbol de n nodos ocupa O(n)
procedure creaVacio(a:out arbin);
-- Post: a=aVacío
-- coste en tiempo O(1)
procedure insertar(a:in out arbin; e:in
elemento);
-- Pre: a=a0; padre es el padre de a
-- Post: a=insertar(a0,e)
-- coste en tiempo: para un árbol de n nodos tarda O(n)
function esta(a:arbin; e:elemento) return
boolean;
-- Post: esta(a,e)= está?(a,e)
-- coste en tiempo: para un árbol de n nodos tarda O(n)
function min(a:arbin) return elemento;
-- Pre: not(esvacío(a))
-- Post: min(a)= min(a)
-- coste en tiempo: para un árbol de n nodos tarda O(n)
function max(a:arbin) return elemento;
-- Pre: not(esvacío(a))
-- Post: max(a)= max(a)
-- coste en tiempo: para un árbol de n nodos tarda O(n)
procedure borrar(a:in out arbin; e:in
elemento);
-- Pre: a=a0
-- Post: a=borrar(a0,e)
-- coste en tiempo: para un árbol de n nodos tarda O(n)
procedure mostrar(a:in arbin);
-- Muestra por pantalla preorden y postorden
-- coste en tiempo: para un árbol de n nodos tarda O(n)
private
type nodo;
type arbin is access nodo;
type nodo is
record
dato:elemento;
izq,der:arbin;
end record;
end abb;
syntax highlighted by Code2HTML, v. 0.9.1