operaciones de arboles
Creación.
Implementación. Se deben crear nodos donde cada uno de ellos tengan 3 campos estructurados de la siguiente forma:
El campo info: que almacenar los datos del nodo N.
El campo izq: que tendrá la localización del hijo izquierdo del nodo N.
El campo der: que tendrá la localización del hijo derecho del nodo N.
Además necesitamos una variable llamada raízque nos permita acceder a la estructura desde ella como el nodo principal.
De tal modo que la estructura Nodo quedaría de la siguiente forma:
Implementación en C sharp.
Class Arbol
{
Int info; //tipo dato aceptado por C#
Árbol izq, der;
Public Arbol()//constructor de nodos
{
Info=”0”;
Izq=null;
Der=null;
}
Public Arbol raíz=null;//estado inicial = vacío
}
Inserción de nodos alárbol.
Con la información alimentada se tiene un nuevo nodo y se generan las direcciones para el subárbol izq y der del nodo. Si es el primer nodo que se crea automáticamente pasara a ser la raíz del árbol, si no dependiendo del valor de la información se creara el hijo izq si el valor es menor que el de la raíz, o el hijo derecho si el valor es mayor que el de la raíz.
Pseudocódigo:Procedimiento insertar ()
Entrada
Arbol: raíz, p, q
Entero: bandera
Tipo_elemento: dato
Inicio
Banderaß0
Pedir información: leer (dato)
Pßcrear_nodo
p.infoßdato
p.izqßnull
p.derßnull
Si (raíz=null) entonces
raízßp//inserta la raíz
si-no qßraíz//crea un nodo temporal para recorrer el árbol
Mientras (bandera !=1) hacer
Si (p.info Si (q.izq=null)entonces
q.izqßp//inserta hijo izq
banderaß1
si-no
qßq.izq
fin-si
si-no
si (q.der=null)entonces
q.derßp//inserta hijo der. Banderaß1
Si-no
qßq.der
Fin-si
Fin-si
Fin-mientras
Fin-si
Fin-procedimiento
Implementación en C sharp:
public void Insertar(int x)
{
int bandera = 0;
Arbol temp = new Arbol();
Arbol hoja = new Arbol();
hoja.info = x;
hoja.izq = null;
hoja.der= null;
if (raiz == null)
raiz = hoja;
else
{
temp = raiz;
while (bandera != 1)
{
if (hoja.info
{
if (temp.izq == null)
{
temp.izq = hoja;
bandera = 1;
}
else
temp = temp.izq;
}
else
{
if (temp.der == null)
{
temp.der = hoja;
bandera = 1;
}
else
temp = temp.der;
}
}
}
}
Recorridos sistemáticos
A) Recorrido Preorden.
Pasos:
1.-Visitar la raíz
2.-Recorre el subárbol izquierdo.
3.-Recorre el subárbol derecho.
Pseudocódigo:
Procedimiento preorden(Arbol:tempraíz)
Si (temp!=null) entonces Desplegar temp.info
si (temp.izq!=null)
preorden (temp.izq)
Si (temp.der!=null) entonces
Preorden(temp.der)
Fin-si...
Regístrate para leer el documento completo.