elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Como puedo implementar un arbol (tree) en C++?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como puedo implementar un arbol (tree) en C++?  (Leído 2,596 veces)
enriquemesa8080

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Como puedo implementar un arbol (tree) en C++?
« en: 2 Noviembre 2019, 19:19 pm »

Hola, este es una pregunta sobre estructuras de datos. Como puedo implementar un arbol en C++?? Yo lei y es una jerarquia de nodos. Para que tenga mas de un hijo debo implemenarlo con una lista enlazada. Esa idea esta bien para implementar el algoritmo?? No tengo mayores detalles ya que eso fue lo que lei, para ver si puedo lograr construirla. En la estructura quiero almacenar carpetas y archivos, asi sea solo de nombre, la idea es recrear un sistema de archivos interno, para un programa tipo servidor web donde segun se invoque la ruta, ejecuto uno, u otro script.

Es lo que se me ocurre.

struct node{
      struct node *padre;
      vector<node> hijos;
      void *dato; (Sustituir por el dato).
}

Es lo que se me viene a la mente. Y simplemente iterar por cada uno de ellos. Tiene alguna documentacion en español sobre estas estructuras de datos?? Alguna que sea puntual, es decir, que diga directamente que se habla sobre arboles para asi poder abordarla mas sencillo.

Es que esta es una solucion mia y yo he diseñado estructuras como la pila y la lista pero sin saber a ciencia cierta si en verdad trabajan como dichas estructuras descritas por la computacion.

Gracias a todos.


En línea

jmpesp

Desconectado Desconectado

Mensajes: 21


Ver Perfil
Re: Como puedo implementar un arbol (tree) en C++?
« Respuesta #1 en: 3 Noviembre 2019, 23:12 pm »

Hola, este es una pregunta sobre estructuras de datos. Como puedo implementar un arbol en C++?? Yo lei y es una jerarquia de nodos. Para que tenga mas de un hijo debo implemenarlo con una lista enlazada. Esa idea esta bien para implementar el algoritmo?? No tengo mayores detalles ya que eso fue lo que lei, para ver si puedo lograr construirla. En la estructura quiero almacenar carpetas y archivos, asi sea solo de nombre, la idea es recrear un sistema de archivos interno, para un programa tipo servidor web donde segun se invoque la ruta, ejecuto uno, u otro script.

Es lo que se me ocurre.

struct node{
      struct node *padre;
      vector<node> hijos;
      void *dato; (Sustituir por el dato).
}

Es lo que se me viene a la mente. Y simplemente iterar por cada uno de ellos. Tiene alguna documentacion en español sobre estas estructuras de datos?? Alguna que sea puntual, es decir, que diga directamente que se habla sobre arboles para asi poder abordarla mas sencillo.

Es que esta es una solucion mia y yo he diseñado estructuras como la pila y la lista pero sin saber a ciencia cierta si en verdad trabajan como dichas estructuras descritas por la computacion.

Gracias a todos.

Bueno, para lograr lo que quieres la estructura que mostraste no esta mal.

Lo que no entendi bien fue esto:

Código:
En la estructura quiero almacenar carpetas y archivos, asi sea solo de nombre, la idea es recrear un sistema de archivos interno, para un programa tipo servidor web donde segun se invoque la ruta, ejecuto uno, u otro script.

y se me hace que no es muy buena idea.

Podrias brindar mas detalles acerca de que es lo que estas intentando hacer?


En línea

K-YreX


Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Como puedo implementar un arbol (tree) en C++?
« Respuesta #2 en: 5 Noviembre 2019, 01:58 am »

Para que tenga mas de un hijo debo implemenarlo con una lista enlazada.
struct node{
      struct node *padre;
      vector<node> hijos;
      void *dato; (Sustituir por el dato).
}
Bueno, lo primero es que para que cada nodo tenga más de un hijo no es necesario utilizar una lista enlazada. Los árboles binarios son los más extendidos en programación y cada nodo tiene dos punteros (hijoIzquierda e hijoDerecha) aunque puede tener tres para incluir otro puntero (padre) y poder ascender por el árbol. Depende de lo que tú necesites.
Sería más correcto decir que árboles de n hijos utilizan una lista enlazada y entonces te aviso que la lista enlazada de la STL es <list>, no <vector> aunque es una puntualización pequeña.
Debes estar seguro también de usar correctamente los punteros <void*>.

Quitando esos pequeños detalles, diría que la implementación no está mal.
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda implementar arbol trie en java
Java
Cooltan 1 6,561 Último mensaje 3 Abril 2011, 05:20 am
por Tryptophan
Como puedo implementar Tcptrack
Redes
virtualedu 0 1,843 Último mensaje 10 Junio 2013, 14:58 pm
por virtualedu
¿Como puedo implementar una funcion recursiva en una expresion lambda de Java?
Java
4dr14n31t0r 0 1,754 Último mensaje 8 Diciembre 2015, 01:00 am
por 4dr14n31t0r
¿Puedo implementar RSS a una Web-local?
Diseño Gráfico
manwan 0 2,539 Último mensaje 3 Enero 2019, 15:42 pm
por manwan
[Pregunta]: ¿Como puedo implementar RE-CAPTCHAS de google en mi aplicación web? « 1 2 »
Desarrollo Web
Leguim 12 5,570 Último mensaje 7 Septiembre 2019, 23:34 pm
por @XSStringManolo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines