Algoritmia - Ayuda URGENTE para aprobar examen

 
Vista:

Ayuda URGENTE para aprobar examen

Publicado por Ramiro Duarte (1 intervención) el 28/02/2006 16:26:04
Hola, necesito si alguien me pudiera dar una "gran" mano para poder aprobar un examen la semana que viene. Necesito el pseudo codigo de lo siguiente.

Son 3 ejercicios:

- Hacer un procedimiento recursivo, Pila_a_Arbol (InicPila,
InicArbol:puntero), que recibe una Pila con datos enteros desordenados, y los
devuelve en un Árbol.

- Hacer 3 Funciones recursivas tal que dado un Arbol (InicArbol) muestre su
contenido, recorriéndolo InOrder, otra en PreOrder, y la última en PostOrder.

- Hacer un procedimiento recursivo, Arbol_a_Lista
(InicArbol,InicLista:puntero), que recibe un Árbol con datos de tipo cadena,
y los devuelve en una Lista Ordenada. Al Árbol debe recorrérselo con el
método PostOrder.

Si alguien me pudiera ayudar estaria muy agradecido. Si hace falta, ofrezco algunos pesos.

Saludos.
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
Imágen de perfil de Alejandro

Soluciones recursivas para manipulación de pilas y árboles

Publicado por Alejandro (307 intervenciones) el 05/03/2024 20:37:30
Solución 1: Pila_a_Arbol

1
2
3
4
5
def Pila_a_Arbol(InicPila, InicArbol):
    if not InicPila.is_empty():
        dato = InicPila.pop()
        InicArbol.insertar(dato)  # Suponiendo que hay una función insertar en la clase Árbol
        Pila_a_Arbol(InicPila, InicArbol)

Solución 2: Recorridos en árbol

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# InOrder
def InOrder(InicArbol):
    if InicArbol is not None:
        InOrder(InicArbol.izquierda)
        print(InicArbol.dato)  # Suponiendo que cada nodo tiene un atributo 'dato'
        InOrder(InicArbol.derecha)
 
# PreOrder
def PreOrder(InicArbol):
    if InicArbol is not None:
        print(InicArbol.dato)
        PreOrder(InicArbol.izquierda)
        PreOrder(InicArbol.derecha)
 
# PostOrder
def PostOrder(InicArbol):
    if InicArbol is not None:
        PostOrder(InicArbol.izquierda)
        PostOrder(InicArbol.derecha)
        print(InicArbol.dato)

Solución 3: Arbol_a_Lista

1
2
3
4
5
def Arbol_a_Lista(InicArbol, InicLista):
    if InicArbol is not None:
        Arbol_a_Lista(InicArbol.izquierda, InicLista)
        Arbol_a_Lista(InicArbol.derecha, InicLista)
        InicLista.insertar_ordenado(InicArbol.dato)  # Suponiendo una función insertar_ordenado en la Lista

Espero que estas soluciones te sean útiles para preparar tu examen. ¡Buena suerte, Ramiro!
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