Documentos de Académico
Documentos de Profesional
Documentos de Cultura
6arboles v1 Genealogico
6arboles v1 Genealogico
Programacin en C
RBOLES
Arboles
Programacin en C
Introduccin
Nodo raiz
Nodo padre
Nodo:
Nodo padre:
Tiene nodos hijos.
Nodo hijo:
Tiene un nodo padre.
Nodo raiz o raiz del rbol:
No tiene nodo padre.
Nodo terminal u hoja:
No tiene nodos hijos
Nodo hijo
Nodo hoja
Subrbol
Arboles
Programacin en C
Programacin en C
Estructuras recursivas
Funciones recursivas para
recorrer el rbol.
Informacin
Informacin
Informacin
nHijos= 1
nHijos= 2
pHijos
pHijos
nHijos= 2
pHijos
Informacin
nHijos= 0
pHijos
Pseudocdigo ArbolRecorrer
ArbolRecorrer(Nodo) {
Recursiva
Calculo(Nodo);
if (Hay hijos) {
Por cada hijo
ArbolRecorrer(Nodo hijo)
}
}
UPCO ICAI Departamento de Electrnica y Automtica 3
Arboles
Programacin en C
arbolgen.h
typedef struct stNodoGen {
char sNom[20];
int nHijos;
struct stNodoGen *pHijos;
} TNodoGen;
void
void
void
void
Carmen
Rafael
Fernando
Gloria
Juan
Mara
Juana
Arboles
Programacin en C
Arboles
Programacin en C
Arboles
Programacin en C
Arboles
Programacin en C
Borrar rbol
for(i=0;i<p->nHijos;i++) {
ArbolGenBorra(p->pHijos+i);
}
MemLibera(&(p->nHijos),sizeof(TNodoGen),
(void **)&(p->pHijos));
}
Arboles
Programacin en C
Programa de prueba
main()
{
FILE *pfic;
TNodoGen Padre;
// Nodo padre
MemIni();
fprintf(stdout,"Memoria inicial %ld\n",MemConsulta());
if ((pfic=fopen("gen.txt","r"))==NULL)
return 1;
ArbolGenLee(pfic,&Padre);
ArbolGenSalva(stdout,&Padre);
ArbolGenImp(stdout,&Padre);
ArbolGenBorra(&Padre);
fprintf(stdout,"Memoria final %ld\n",MemConsulta());
return 0;
}
Prof. Jos A. Rodrguez Mondjar
Prof. lvaro Snchez Miralles
Arboles
Programacin en C
Arboles
Programacin en C
Primitivas de dibujo:
Ventana
Punto.
Recta.
Polgono.
Crculo
Ventana1
Primitivas de organizacin
Ventana10
Ventana
Ventana0
Arboles
Programacin en C
Punto
Figura
typedef struct {
int n;
TPto *pPto;
TClaseFigura Clase;
} TFigura;
typedef struct TVentana{
TPto Pos[2];
int nFig;
TFigura *pFig;
int nVenHijas;
struct TVentana *pHijas;
} TVentana;
Prof. Jos A. Rodrguez Mondjar
Prof. lvaro Snchez Miralles