• Domingo 22 de Diciembre de 2024, 16:24

Autor Tema:  Árboles En Pascal  (Leído 2130 veces)

luktk

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Árboles En Pascal
« en: Miércoles 7 de Mayo de 2008, 19:43 »
0
Hola a todos... Soy nuevo en el foro. Necesito un poco de ayuda porque estoy estancado. Necesito construir un árbol, en el que cada nodo puede tener como máximo 256 hijos. Mi problema es el siguiente, Sé como se insertan nodos cuando se trata de un arbol binario, es simple, izquierda o derecha, porque como maximo tiene 2 hijos. Pero a la hora de implementar la estructura para que los nodos del arbol tengan como maximo 256 hijos no se me ocurre nada. He pensado en hacer la siguiente estructura, ¿alguien me podria decir si es correcta?
Type
                tElemento=String;
      tArbol=^tNodoArbol;
      tLista=^tNodoLista;
      tNodoArbol=Record
         cadena:tElemento;
         posicion:Byte;
         hijo:tLista;
      End;
      tNodoLista=Record
         nodo:tArbol;
         siguiente:tLista;
      End;

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Árboles En Pascal
« Respuesta #1 en: Viernes 9 de Mayo de 2008, 15:33 »
0
Hola, soy malisimo con esto de listas de Arboles... pero se me ocure que podrías en vez de NodoDerecha, NodoIzquierda hacer un Array de 256 Nodos.
Código: Text
  1.  
  2. Type
  3. PArbol = ^TArbol;
  4. TArbol = Record
  5. Elemento: TElemento;
  6. Siguiente: array[0..255] of PArbol;
  7. Anterior: PArbol;
  8. End;
  9.  
  10.  
Es decir, cada nodo tiene 256 punteros a nodos que tienen 256 punteros.

Código: Text
  1.  
  2.   Start: PNodo;
  3.   Temp: Pnodo;
  4. begin
  5.   New(Temp)
  6.   Start := Temp;
  7.   New(Temp);
  8.   Temp.^Elemento := 'cadena';
  9.   Start.^Siguiente[0] := Temp;
  10.   Temp.^Anterior := Start;
  11.  
  12.  

luktk

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Árboles En Pascal
« Respuesta #2 en: Viernes 9 de Mayo de 2008, 16:32 »
0
El problema es que no debo utilizar estructuras estáticas, tengo que utilizar estructuras dinámicas y no sé como hacer para que un nodo del arbol tenga varios hijos, con estructuras dinamicas, estoy un poco pez en el asunto. De todas maneras muchas gracias por el consejo, en el peor de los casos lo utilizaré