Arbolez.c

Solo disponible en BuenasTareas
  • Páginas : 3 (727 palabras )
  • Descarga(s) : 0
  • Publicado : 27 de marzo de 2011
Leer documento completo
Vista previa del texto
ARBOLES BUSQUEDA
tipos
enlace-árbol-bb = puntero a nodo-árbol-bb
nodo-árbol-bb = reg
valor: elemento
iz,dr: enlace-árbol-bb
freg
árbol_bb = enlace-árbol-bb
ftipos
Operacionesconstructoras:
fun árbol-bb_vacío() dev a: árbol-bb
a := nil
ffun
proc insertar(e e:elemento, a: árbol-bb) dev a: árbol-bb
si a = nil entonces
reservar(a)
a^.valor := e; a^.iz := nil; a^.dr:= nil
si no
si a^.valor >= e entonces
insertar(e, a^.iz)
si no
insertar(e, a^.dr)
fsi
fsi
fproc
Operaciones observadoras:
fun es_árbol_vacío(a: árbol-bb) devb:bool
b := (a = nil)
ffun
fun mínimo(a: árbol-bb) dev e: elemento
si a = nil entonces
error(Árbol vacío)
si no
si a^.iz nil entonces
e := mínimo(a^.iz)
si no
e:= a^.valor
fsi
fsi
ffun
fun máximo(a: árbol-bb) dev e: elemento
si a = nil entonces
error(Árbol vacío)
si no
si a^.dr nil entonces
e := máximo(a^.dr)
si noe := a^.valor
fsi
fsi
fun.
Modificadoras:
proc eliminar(a: árbol-bb) dev a: árbol-bb
si a = nil entonces
error(Árbol vacío)
si no
si a^.iz nil entonceseliminar(a^.iz)
si no
a:= a^.dr
fsi
fsi
fproc

ARBOLES GENERALES
tipos
enlace-árbol = puntero a nodo-árbol
nodo-árbol = reg
valo: elemento
primog,sig-hermano: enlace-árbolfreg
árbol = enlace-árbol
bosque = enlace-árbol
ftipos
Operaciones constructoras:
fun plantar(e:elemento, b: bosque) dev a: árbol
reservar(a)
a^.valor := e
a^.primog := b
a^.sig-hermano:= nil
ffun
Operaciones constructoras adicionales
fun bosque_vacío() dev b: bosque
b := nil
ffun
proc añade_árbol(a: árbol, b:bosque)
a^sig-hermano := b
b := a
fproc
Operacionesobservadoras:
fun raíz(a: árbol) dev e:elemento
e := a^.valor
ffun
fun hijos(a: árbol) dev b: bosque
b := a^.primog
ffun
fun num-hijos(a: árbol) dev n: nat
n := longitud(a^.primog)
ffun...
tracking img