C/Visual C - Arboles en C

 
Vista:

Arboles en C

Publicado por Albertogd (2 intervenciones) el 14/06/2001 14:13:01
Buenos dias, esto es una situacion desesperada, soy un estudiante de informatica en un modulo en valladolid y necesito saber bien como hacer un programa, bien, este programa consiste en realizar el seguimiento de un arbol pudiendo introducir, borrar y recorrer los elementos de dicho arbol bidimensional, no os pido que me hagais el programa pero si consejos sobre como utilizar los punteros ya que me estoy liando mucho con el tema (de hecho ya no consigo ni dormir), los punteros para mi son todavia dificiles de asimilar y no se como realizar el programa ya que al ser una cosa tan abstracta me quedo perdido enseguida, si pudierais hecharme una mano os lo agradeceria enormemente
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:Arboles en C

Publicado por flyguille (6 intervenciones) el 18/06/2001 05:15:55
... te puedo decir como lo haria yo .. a grandes razgos

primero, como "arbol 2d" puedo imaginar a un arbol de directorios.
donde cada elemento (subdirectorio) tiene su ruta de ubicacion
entonces te puedes desplazar con un puntero hacia el elemento anterior o posterior, mediante una rutina recursiva.

como unico parametro de entrada, será la ruta del elemento actual (ej "windows\command").
la rutina supone que todos los elementos estan en un orden y este orden no cambia (o sea que nunca se ejecuto un "defrag" (defragmentacion de archivos) durante el proceso que es lo q).
para avanzar al elemento siguiente
la rutina debe realizar un DIR elemento x elemento
deducir si es o no subdirectorio.
Cuando llega al subdir indicado en el elemento de entrada (o sea se alcanzo la posicion actual) indicar en una variable este evento (flag activo)
y seguir con el DIR elemento x elemento
cuando llegue al siguiente subdir y el flag esta activo, ese es el siguiente elemento en el arbol!!
si no hay mas subdir, devolver como parametro de salida nulo"
la rutina
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:Arboles en C

Publicado por flyguille (6 intervenciones) el 18/06/2001 05:32:34
perdon se me escapó el ENTER

primero, como "arbol 2d" puedo imaginar a un arbol de directorios.
donde cada elemento (subdirectorio) tiene su ruta de ubicacion
entonces te puedes desplazar con un puntero hacia el elemento anterior o posterior, mediante una rutina recursiva.

como parametro de entrada, será la ruta del elemento actual (ej "\windows\command") y un flag OBJETIVO_LOGRADO inicialmente puesto en "false".

la rutina supone que todos los elementos estan en un orden y este orden no cambia (o sea que nunca se ejecuto un "defrag" (defragmentacion de archivos) durante el proceso que es lo que normalmente sucede en todos los SO.).

recuerda que debe ser una rutina recursiva...

primero debe investigar si en el subdirectorio \windows\command\ no hay a su vez subdirectorios...si lo hay entonces ese es el siguiente elemento del arbol y devolverlo en el parametro (siguiendo el ejemplo "\windows\command\tds") con el flag OBJETIVO_LOGRADO PUESTO en "true".


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:Arboles en C

Publicado por flyguille (6 intervenciones) el 18/06/2001 05:37:41
segunda parte!

Si no hay un subdir que parta del elemento actual entonces
la rutina debe realizar un DIR elemento x elemento en el directorio actual donde el elemento actual
deducir si es o no subdirectorio.
Cuando llega al subdir indicado en el elemento de entrada (o sea se alcanzo la posicion actual) indicar en una variable este evento (flag activo)
y seguir con el DIR elemento x elemento
cuando llegue al siguiente subdir y el flag esta activo, ese es el siguiente elemento en el arbol!! activar el flag OBJETIVO_LOGRADO y devolver el elemento en el parametro.

si no hay mas subdir, devolver como parametro de salida el parametro de entrada pero recortado en un nivel (es decir "\windows") pero esta vez no activar el flag OBJETIVO_LOGRADO
de esta forma la rutina que lo llamó va a seguir buscando el siguiente elemento en el directorio "windows" , no olvidez que esta rutina se llama a si misma por lo tanto las variables internas deben ser dinamicas, no estaticas!.
mas o menos asi es la idea para recorrer hacia adelante, algo parecido es para recorrerla hacia atrás.

en una base de dato es parecida.

el consepto basico es que el parametro principal sea un arreglo de caracteres en el cual se especifican nivel x nivel todos numeros o codigos que representan a cada elemento de cada nivel separados x un caracter que no pueda ser usado como parte de un nombre (ej "el5.el10.el12.el1" o bien "15.10.12.1")
significa, que se trata del primer elemento del cuarto nivel, que se accede a travez del doceavo elemento del tercer nivel, que a su vez se accede al decimo elemento del segundo nivel, que a su vez parte del quinceavo elemento del primer nivel.

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:Arboles en C

Publicado por albertogd (2 intervenciones) el 19/06/2001 10:52:37
gracias hombre, desde luego he estado hechandole un vistazo a tu explicacion y cuando tenga un nivel mas adecuado podre entenderla mejor, de todas formas me ha interesado, es curioso, no lo habia enfocado desde donde tu dices , ahora mismo, con tanto arbol lo unico que consigo es perderme pero estoy avanzando rapido, ya se bastante bien cual es el proceso a seguir, se puede decir que estoy aprendiendo muy rapido.
gracias flyguille.
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