ADA - Restaurar en una pila Dinamica

 
Vista:

Restaurar en una pila Dinamica

Publicado por Mc Keihan (1 intervención) el 27/05/2008 19:39:24
Hola buenas tardes les escribo haber si me pueden echar una mano.

Estoy cursando semi-presencial y no puedo consultar con el profesor.
Me han pedido en la uni que implemente una operacion de restaurar en una pila dinamica una vez desapilado el dato y que ademas se debe restaurar en la misma posicion.

la especificacion es de este tipo:

TYPE Nodo IS RECORD
D : Elemento; --Dato a Almacenar
Sig : Pila; --Puntero al nodo siguiente
END RECORD;

TYPE Pila IS ACCESS NODO;

Mi duda es :
si yo guardo el dato en un nuevo nodo el elemento y la posicion siguiente a mi dato

como hago luego para insertarlo en una determinada posicion si se supone q ya esta ocupada?

Como desplazo todos los datos?

Muchas gracias a cualquier colaboracion
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

Restaurar en una pila Dinamica

Publicado por Alejandro (155 intervenciones) el 30/06/2023 22:07:17
Hola, puedo ayudarte con tu pregunta.

Para implementar la operación de restaurar en una pila dinámica y mantener la misma posición, puedes seguir los siguientes pasos:

1. Desapila el dato de la pila: Utiliza la operación de desapilar para extraer el nodo que deseas restaurar de la pila. Esto implica actualizar el puntero de la pila al siguiente nodo.

2. Crea un nuevo nodo: Crea un nuevo nodo donde guardarás el dato que has desapilado.

3. Establece la posición original del dato: Antes de insertar el nuevo nodo en la pila, debes asegurarte de que esté en la posición original. Para lograr esto, tendrás que desplazar los nodos que están por encima del nodo que deseas restaurar.

4. Desplazamiento de nodos: Recorre la pila desde el nodo superior hacia abajo y realiza los siguientes pasos:
- Crea un nuevo nodo auxiliar.
- Copia el dato del nodo actual en el nuevo nodo auxiliar.
- Actualiza el puntero del nuevo nodo auxiliar para que apunte al siguiente nodo en la pila.
- Establece el puntero del nodo actual para que apunte al nuevo nodo auxiliar.
- Avanza al siguiente nodo en la pila.

5. Inserta el nuevo nodo restaurado: Una vez que hayas terminado de desplazar los nodos, tendrás espacio en la posición original del dato que deseas restaurar. Inserta el nuevo nodo creado en esta posición.

Al seguir estos pasos, podrás restaurar un dato en una pila dinámica y mantener su posición original. Ten en cuenta que este proceso implica un desplazamiento de los nodos que están por encima del nodo que deseas restaurar, por lo que podría haber un impacto en el rendimiento si la pila contiene muchos elementos.

Espero que esta explicación te sea útil.
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