Vous êtes sur la page 1sur 3

Gutierrez Gutierrez Adan Obed

Equipo 8

// Programa que inserta:


a) un nuevo nodo en un rbol binario en el lugar correspondiente segn
su valor.
b) El otro procedimiento permite conocer el nmero de nodos de un
rbol binario.
c) Utilizar ambos procedimientos desde un algoritmo que cree el rbol y
nos informe sobre se nmero de nodos.
const
Max=
tipo
registro: tipoelemento
fin_registro
registro: tiponodo
tipoelemento
: elemento
entero
: izquierdo
fin_registro
array [1..Max] de tiponodo : arr
var
arr
:a
tipoelemento : elemento
entero : raz, vaco
inicio
iniciar (a, raz, vaco)
escribir ("Introduzca nuevo elemento: ")
si no rbollleno(vaco) entonces
llamar_a leerelemento (elemento)
fin_si
mientras distinto (elemento, "0") y no rbolleno(vaco) hacer
altas (a, elemento, raz, vaco)
si no rbollleno (vaco) entonces
escribir (Introduzca un nuevo elemento: )
llamar_a leerelemento (elemento)
fin_si
fin_mientras
listado (a, raz)
fin
// iniciar rbol
procedimiento iniciar (S arr : a ; S entero: raz, vaco)
var
entero: i
inicio
raz
0
Bibliografa: Fundamentos de programacin, Joyanes A. L., Rodrguez B.L,
Fernndez A. M., McGraw-Hill, pp. 353-356.

Gutierrez Gutierrez Adan Obed

Equipo 8

vaco
1
desde i
1 hasta max 1 hacer
a[i].dcho
i+1
fin_desde
a[max].dcho
0
fin_procedimiento
lgico funcin rbollleno(E entero: vaco)
inicio
si vaco=0 entonces
devolver(verdad)
si_no
devolver(falso)
fin_si
fin_funcion
//iniciar el orden del rbol
procedimiento inorden(E arr: a ; E entero: raz ; E/S entero: cont)
inicio
Si raz<>0 entonces
Inorden(a, a[raz].izdo, cont)
cont
cont + 1
llamar_a escribirelemento(a[raz].elemento)
//adems de contar los nodos visualiza la
//informacin almacenada en ellos
Inorden(a,a[raz].dcho, cont)
fin_si
fin_procedimiento
//iniciar buscar
procedimiento buscar (E arr: a ; E tipoelemento:elemento; S entero:

act, ant)
var
lgico: encontrado
inicio
encontrado
falso
act
raz
ant
0
mientras no encontrado y (act<>0) hacer
si igual(elemento, a[act].elemento) entonces
encontrado
verdad
si_no
act act
si mayor(a[act].elemento, elemento) entonces
act
a[act].izdo
si_no
Bibliografa: Fundamentos de programacin, Joyanes A. L., Rodrguez B.L,
Fernndez A. M., McGraw-Hill, pp. 353-356.

Gutierrez Gutierrez Adan Obed

Equipo 8

act
a[act].dcho
fin_si
fin_si
fin_mientras
fin_procedimiento
//altas en el rbol
procedimiento altas (E/S arr: a ; E tipoelemento: elemento; E/S entero:
raz, vaco)
var
entero: act, ant, auxi
inicio
si no arbollleno(vaco) entonces
buscar(a, elemento, act, ant)
si act<>0 entonces
escribir(Ese elemento ya existe)
si_no
auxi vaco
vaco
a[auxi].dcho
a[auxi].elemento
elemento
a[auxi].izdo
0
a[auxi].dcho
0
si ant=0 entonces
raz
auxi
si_no
si mayor(a[ant].elemento, elemento) entonces
a[ant].izdo
auxi
si_no
a[ant].dcho
auxi
fin_si
fin_si
fin_si
fin_si
fin_procedimiento
//listado del rbol
procedimiento listado (E arr: a; E entero: raz)
var
cont: entero
inicio
escribir (inorden: )
cont
0
inorden (a, raz, cont)
escribir(El nmero de nodos es , cont)
fin_procedimiento

Bibliografa: Fundamentos de programacin, Joyanes A. L., Rodrguez B.L,


Fernndez A. M., McGraw-Hill, pp. 353-356.

Vous aimerez peut-être aussi