C/Visual C - Arbol general II

 
Vista:

Arbol general II

Publicado por Esteban (6 intervenciones) el 12/06/2005 08:03:54
Perdon por la insistencia pero es de urgencia, mi duda en si, es el codigo para un arbol general pero usando un struct como el de un nodo, no se si me explico, por ej:
struct nodoLista
{
char * dato;
nodoLista * siguiente;
}
Bueno, sepan disculpar y muchas gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Arbol general II

Publicado por fernando.gomez (1603 intervenciones) el 14/06/2005 01:15:39
Pues bueno, la respuesta que te dí me parece suficiente. Como sabrás, una clase es semánticamente igual a una estructura. En fin, que si trabajas en C, cambia "class" por "struct".

La idea es que un arbol es un contenedor para una lista, donde cada nodo de la lista es a su vez un contenedor para otra lista. Así ad infinitum. En particular, por ejemplo, un árbol binario es aquel que sólo contiene dos nodos por lista. Primero tienes que implementar una lista (o un vector dinámico, o una pila o una cola o cualquier contenedor). Supondré que ya la tienes:

struct CDato {
// etc
};

struct CNodo {
struct CDato* pDato;
struct CNodo* pPrev;
struct CNodo* pSig;
};

Entonces, lo que tienes que hacer es que cada nodo apunte además al primer nodo de la lista hija:

struct CNodo {
struct CDato* pDato;
struct CNodo* pPrev;
struct CNodo* pSig;
struct CNodo* pHijo;
};

Además, sería un buen detalle si a su vez agregases una referencia al padre:

struct CNodo {
struct CDato* pDato;
struct CNodo* pPrev;
struct CNodo* pSig;
struct CNodo* pPadre;
};

Ahora, evidentemente todo radica en las funciones de búsqueda, ordenamiento e inserción que tendrás que realizar. Pero ya no deberías tener problemas. La forma más sencilla es recorrer el árbol de izquierda a derecha, o como si fuese un árbol binario. Saludos.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Arbol general II

Publicado por Alvaro (7 intervenciones) el 28/06/2005 08:04:09
Tengo implementado el árbol binario en C++ para linux con estructuras y clases ... las 2 cosas incluidas en una :P... Si deseas te envío los archivos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar