You are on page 1of 17

ARBOLES

rbol
Impone una estructura jerrquica sobre una coleccin
de objetos
Arboles genealgicos y organigramas son ejemplos
comunes de arboles

En computacin se pueden utilizar para organizar
informacin en sistemas de bases de datos y para
representar la estructura sintctica de un programa
fuente en compiladores

rbol

Es una coleccin de elementos llamados nodos, uno de
los cuales se distingue como raz, junto con una
relacin (de paternidad) que impone una estructura
jerrquica sobre los nodos. Un nodo, como elemento
de una lista, puede ser del tipo que se desee.
rbol
1. Un solo nodo es, por si mismo, un rbol. Ese nodo es
tambin la raz de dicho rbol

2. Suponiendo que n es un nodo y que A
1
, A
2
A
k
son
arboles con races en n
1
, n
2
, n
k
, respectivamente.
Se puede construir un nuevo rbol haciendo que n se
constituya en el padre de los nodos n
1
, n
2
, n
k
. En
dicho rbol, n es la raz y A
1
, A
2
.. A
k
son los sub
arboles de la raz. Los nodos n
1
, n
2
,..n
k
reciben el
nombre de hijos del nodo n

rbol nulo: Un rbol sin nodos.
Ejemplo
ndice general de un
libro
Raz.- libro
Subrbol:.- c1, c2, c3
Padre.- libro
Hijos .- c1, c2 , c3

Sub rbol
Raz.- c1, c2, c3
Subrbol c2.- s2.1 s2.2 s2.3
Definicindeconceptosenrelacinconotrosnodos
Nodohijo: Cualquieradelosnodosapuntadospor
unodelosnodosdelrbol.Enelejemplo,
'L'y'M'sonhijosde'G'.

Nodopadre: nodoquecontieneunpunteroalnodo
actual.Enelejemplo,elnodo'A'espadre
de'B','C'y'D'.

Cadanodoslopuedeserapuntadoporotronodo,esdecir,cada
nodoslotendrunpadre.Estohacequeestosrbolesestn
fuertementejerarquizados,yesloqueenrealidadlesdala
aparienciaderboles.

Definicindeconceptosencuantoalaposicindentro
delrbol.
Nodoraz: Nodoquenotienepadre.Esteeselnodoque
seusaparareferirsealrbol.Enelejemplo,
esenodoesel'A'.
Nodohoja: Nodoquenotienehijos.Enelejemplohay
varios:'F','H','I','K','L','M','N'y'O'.
Nodorama: Aunqueestadefinicinapenasseusa,estos
sonlosnodosquenopertenecenaningunade
lasdoscategorasanteriores.Enelejemplo:
'B','C','D','E','G'y'J'.
Todoslosnodoscontienenelmismonmerodepunteros,
esdecir,seusalamismaestructuraparatodoslosnodos
delrbol.Estohacequelaestructuraseamssencilla,y
porlotantotambinlosprogramasparatrabajarconellos.
Definicindeconceptosencuantoalaposicindentrodelrbol.
Tampocoesnecesarioquetodoslosnodoshijosdeun
nodoconcretoexistan.Esdecir,quepuedenusarse
todos,algunosoningunodelospunterosdecadanodo.

Enunacosa,losrbolesseparecenalrestodelas
estructuras:dadounnodocualquieradelaestructura,se
puedeconsiderarcomounaestructuraindependiente.Es
decir,unnodocualquierapuedeserconsideradocomola
razdeunrbolcompleto.

Definicindeconceptosenrelacinasutamao
Orden: Eselnmeropotencialdehijosquepuede
tenercadaelementoderbol.Deestemodo,
diremosqueunrbolenelquecadanodo
puedeapuntaraotrosdos,esdeordendos,si
puedeapuntaratres,serdeordentres,etc.

Grado: Elnmerodehijosquetieneelelementocon
mshijosdentrodelrbol.Enelrboldel
ejemplo,elgradoestres,yaquetanto'A
como'D'tienentreshijos,ynoexisten
elementosconmsdetreshijos.
Definicindeconceptosenrelacinasutamao
Nivel: Sedefineparacadaelementodelrbolcomo
ladistanciaalaraz,medidaennodos.Elnivel
delarazesceroyeldesushijosuno.As
sucesivamente.Enelejemplo,elnodo'D'
tienenivel1,elnodo'G'tienenivel2,yelnodo
'N',nivel3.

Altura: Laalturadeunrbolsedefinecomoelniveldel
nododemayornivel.Comocadanododeun
rbolpuedeconsiderarseasuvezcomolaraz
deunrbol,tambinpodemoshablardealturade
ramas.Elrboldelejemplotienealtura3,larama
'B'tienealtura2,larama'G'tienealtura1,la'H'
cero.
Definicindeconceptosenrelacinasutamao
Losrbolesdeordendossonbastanteespeciales,aestos
rbolesseconocentambincomorbolesbinarios.

Frecuentemente,aunquetampocoesestrictamente
necesario,parahacermsfcilmoverseatravsdelrbol,
seaadeunpunteroacadanodoqueapuntealnodo
padre.Deestemodosepuedeavanzarendireccinala
raz,ynoslohacialashojas.

Esimportanteconservarsiempreelnodorazyaqueesel
nodoapartirdelcualsedesarrollaelrbol,sisepierde
estenodo,seperderaccesoatodoelrbol.
Ejemplo.Nodopararbolesdeordentres.
struct nodo {
int dato;
struct nodo *rama1;
struct nodo *rama2;
struct nodo *rama3; };

#define ORDEN 5
struct nodo {
int dato;
struct nodo *rama[ORDEN]; };
Ejemplo.Nodopararbolesdeordentres.
Utilizandotipos:

typedef struct _nodo {


int dato;
struct _nodo *rama[ORDEN];
} tipoNodo;
typedef tipoNodo *pNodo;
typedef tipoNodo *Arbol;

SedeclarauntipotipoNodoparadeclararnodos,yuntipo
pNodoeseltipoparadeclararpunterosaunnodo.


Ejemplo.Nodopararbolesdeordentres.
Elmovimientoatravsderboles,salvoseimplemente
punterosalnodopadre,sersiemprepartiendodelnodoraz
haciaunnodohoja.Cadavezquesellegueaunnuevonodo
sepodroptarporcualquieradelosnodosalosqueapunta
paraavanzaralsiguientenodo.

En general, se busca que exista algn significado asociado a


cadaunodelospunterosdentrodecadanodo,losrbolesque
se estn analizando son abstractos, pero las aplicaciones no
tienen por qu serlo. Un ejemplo de estructura en rbol es el
sistemadedirectoriosyficherosdeunsistemaoperativo.

Aunque en este caso se trata de rboles con nodos de dos


tipos, nodos directorio y nodos fichero, se podran considerar
que los nodos hoja son ficheros y los nodos rama son
directorios
Ejemplo.Nodopararbolesdeordentres.
Otroejemplopodraserlatabladecontenidodeun
libro, dividido en captulos, y cada uno de ellos en
subcaptulos. Aunque el libro sea algo lineal, como
una lista, en el que cada captulo sigue al anterior,
tambinesposibleaccederacualquierpuntodel
atravsdelatabladecontenido.

Tambinsesuelenorganizarenformaderbollos
organigramas de mando en empresas o en el
ejrcito,ylosrbolesgenealgicos.
Operacionesbsicasconlosrboles.
Salvoquesetrabajeconrbolesespeciales,lasinserciones
sernsiempreenpunterosdenodoshojaoenpunteros
libresdenodosrama.Conestasestructurasnoestanfcil
generalizar,yaqueexistenmuchasvariedadesderboles.

Operaciones
Aadiroinsertarelementos.
Buscarolocalizarelementos.
Borrarelementos.
Moverseatravsdelrbol.
Recorrerelrbolcompleto.

Los algoritmos de insercin y borrado dependen en gran
medidadeltipoderbolqueseesteimplementando.
Programa
Realizar programa que permita crear una lista doblemente ligada con
los siguientes valores:
No.
Pregunta
Respuesta1
Respuesta2
Respuesta3
No Respuesta correcta
Realizar proceso que permita recorrer la lista y que el usuario pueda
visualizar la pregunta con sus posibles respuestas, se deber evaluar si
la respuesta es correcta, almacenar 1 punto por cada acierto, al final
mostrar la puntuacin.
Permitir volver a responder cuestionario
Crear procedimiento que permita grabar la lista en un archivo
Crear procedimiento que permita leer archivo e insertarlo en la lista .
Permitir seleccionar accin a realizar (leer, grabar y contestar
cuestionario).

You might also like