Primer Parcial

Primer 25%

Si tengo el apuntador de entrada a una cola.

ELABORA un ALGORITMO que permita CONSTRUIR una PILA con los elementos de la COLA de tal manera que el último elemento de la PILA(Tope) Sea el último Elemento de la COLA.

Segundo  25%

Solución 

En esta primera parte del parcial me hice con mi compañero Juan David Sarrazola Fernadez

Url de los códigos en Python:

Primer punto

Segundo punto: https://pythontutor.com/render.html#code=class%20Nodo%3A%0A%20%20%20%20def%20__init__%28self,%20dato%29%3A%0A%20%20%20%20%20%20%20%20self.dato%20%3D%20dato%0A%20%20%20%20%20%20%20%20self.liga%20%3D%20None%0A%0Aclass%20LSL%3A%0A%20%20%20%20def%20__init__%28self%29%3A%0A%20%20%20%20%20%20%20%20self.primero%20%3D%20None%0A%20%20%20%20%20%20%20%20self.ultimo%20%3D%20None%0A%0A%20%20%20%20def%20insertar%28self,%20dato%29%3A%0A%20%20%20%20%20%20%20%20nuevo_nodo%20%3D%20Nodo%28dato%29%0A%20%20%20%20%20%20%20%20if%20self.primero%20is%20None%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20self.primero%20%3D%20nuevo_nodo%0A%20%20%20%20%20%20%20%20%20%20%20%20self.ultimo%20%3D%20nuevo_nodo%0A%20%20%20%20%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20self.ultimo.liga%20%3D%20nuevo_nodo%0A%20%20%20%20%20%20%20%20%20%20%20%20self.ultimo%20%3D%20nuevo_nodo%0A%0A%20%20%20%20def%20mostrar%28self%29%3A%0A%20%20%20%20%20%20%20%20nodo_actual%20%3D%20self.primero%0A%20%20%20%20%20%20%20%20while%20nodo_actual%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20print%28nodo_actual.dato,%20end%3D'%20'%29%0A%20%20%20%20%20%20%20%20%20%20%20%20nodo_actual%20%3D%20nodo_actual.liga%0A%20%20%20%20%20%20%20%20print%28%29%0A%0Adef%20eliminar_numero%28lista,%20numero%29%3A%0A%20%20%20%20nodo_actual%20%3D%20lista.primero%0A%20%20%20%20nodo_anterior%20%3D%20None%0A%0A%20%20%20%20while%20nodo_actual%3A%0A%20%20%20%20%20%20%20%20if%20nodo_actual.dato%20%3D%3D%20numero%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20nodo_anterior%20is%20None%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20Si%20el%20n%C3%BAmero%20est%C3%A1%20al%20principio%20de%20la%20lista%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20lista.primero%20%3D%20nodo_actual.liga%0A%20%20%20%20%20%20%20%20%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nodo_anterior.liga%20%3D%20nodo_actual.liga%0A%20%20%20%20%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20nodo_anterior%20%3D%20nodo_actual%0A%0A%20%20%20%20%20%20%20%20nodo_actual%20%3D%20nodo_actual.liga%0A%0A%23%20Crear%20una%20lista%20simplemente%20ligada%20con%20n%C3%BAmeros%20ingresados%20por%20el%20usuario%0Alista%20%3D%20LSL%28%29%0An%20%3D%20int%28input%28%22%C2%BFCu%C3%A1ntos%20n%C3%BAmeros%20desea%20ingresar%3F%20%22%29%29%0A%0Afor%20i%20in%20range%28n%29%3A%0A%20%20%20%20numero%20%3D%20int%28input%28f%22Ingrese%20el%20n%C3%BAmero%20%7Bi%20%2B%201%7D%3A%20%22%29%29%0A%20%20%20%20lista.insertar%28numero%29%0A%0Aprint%28%22%5CnLista%20original%3A%22%29%0Alista.mostrar%28%29%0A%0Anumero_a_eliminar%20%3D%20int%28input%28%22%5CnIngrese%20el%20n%C3%BAmero%20que%20desea%20eliminar%3A%20%22%29%29%0A%0A%23%20Eliminar%20el%20n%C3%BAmero%20ingresado%20por%20el%20usuario%0Aeliminar_numero%28lista,%20numero_a_eliminar%29%0A%0Aprint%28%22%5CnLista%20despu%C3%A9s%20de%20eliminar%20el%20n%C3%BAmero%3A%22%29%0Alista.mostrar%28%29&cumulative=false&curInstr=163&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%226%22,%2210%22,%2215%22,%2225%22,%2215%22,%2230%22,%2215%22,%2215%22%5D&textReferences=false

Tercer punto

Cuarto punto

Quinto punto: https://pythontutor.com/render.html#code=def%20apilar%28pila,%20tope,%20elemento,%20capacidad%29%3A%0A%20%20%20%20if%20tope%20%3C%20capacidad%20-%201%3A%20%0A%20%20%20%20%20%20%20%20tope%20%2B%3D%201%0A%20%20%20%20%20%20%20%20pila%5Btope%5D%20%3D%20elemento%0A%20%20%20%20%20%20%20%20print%28f%22Elemento%20'%7Belemento%7D'%20apilado%20correctamente.%22%29%0A%20%20%20%20%20%20%20%20return%20tope%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20print%28%22La%20pila%20esta%20llena.%20No%20se%20puede%20apilar%20el%20elemento.%22%29%0A%20%20%20%20%20%20%20%20return%20tope%0A%0Adef%20desapilar%28pila,%20tope%29%3A%0A%20%20%20%20if%20tope%20%3E%3D%200%3A%20%0A%20%20%20%20%20%20%20%20elemento%20%3D%20pila%5Btope%5D%0A%20%20%20%20%20%20%20%20pila%5Btope%5D%20%3D%20None%20%0A%20%20%20%20%20%20%20%20tope%20-%3D%201%0A%20%20%20%20%20%20%20%20print%28f%22Elemento%20'%7Belemento%7D'%20desapilado%20correctamente.%22%29%0A%20%20%20%20%20%20%20%20return%20tope%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20print%28%22La%20pila%20esta%20vacia.%20No%20se%20puede%20desapilar.%22%29%0A%20%20%20%20%20%20%20%20return%20tope%0A%0Adef%20mostrar_pila%28pila,%20tope%29%3A%0A%20%20%20%20if%20tope%20%3E%3D%200%3A%20%20%0A%20%20%20%20%20%20%20%20print%28%22Contenido%20de%20la%20pila%3A%22%29%0A%20%20%20%20%20%20%20%20for%20i%20in%20range%28tope,%20-1,%20-1%29%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20print%28pila%5Bi%5D%29%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20print%28%22La%20pila%20esta%20vacia.%22%29%0A%0A%0Acapacidad%20%3D%20int%28input%28%22Ingrese%20la%20capacidad%20maxima%20de%20la%20pila%3A%20%22%29%29%0Apila%20%3D%20%5BNone%5D%20*%20capacidad%20%20%0Atope%20%3D%20-1%20%0A%0Awhile%20True%3A%0A%20%20%20%20print%28%22Opciones%3A%22%29%0A%20%20%20%20print%28%221.%20Apilar%22%29%0A%20%20%20%20print%28%222.%20Desapilar%22%29%0A%20%20%20%20print%28%223.%20Mostrar%22%29%0A%20%20%20%20print%28%224.%20Salir%22%29%0A%20%20%20%20opcion%20%3D%20input%28%22Ingrese%20el%20Numero%20de%20opcion%3A%20%22%29%0A%0A%20%20%20%20if%20opcion%20%3D%3D%20%221%22%3A%0A%20%20%20%20%20%20%20%20if%20tope%20%3C%20capacidad%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20elemento%20%3D%20input%28%22Ingrese%20el%20elemento%20a%20apilar%3A%20%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20tope%20%3D%20apilar%28pila,%20tope,%20elemento,%20capacidad%29%0A%20%20%20%20%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20print%28%22La%20pila%20esta%20llena.%20No%20se%20puede%20apilar%20mas%20elementos.%22%29%0A%20%20%20%20elif%20opcion%20%3D%3D%20%222%22%3A%0A%20%20%20%20%20%20%20%20tope%20%3D%20desapilar%28pila,%20tope%29%0A%20%20%20%20elif%20opcion%20%3D%3D%20%223%22%3A%0A%20%20%20%20%20%20%20%20mostrar_pila%28pila,%20tope%29%0A%20%20%20%20elif%20opcion%20%3D%3D%20%224%22%3A%0A%20%20%20%20%20%20%20%20print%28%22Saliendo%20del%20programa.%22%29%0A%20%20%20%20%20%20%20%20break%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20print%28%22Opcian%20no%20valida.%20Por%20favor,%20elija%20una%20opcian%20valida.%22%29&cumulative=false&curInstr=131&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%223%22,%221%22,%2210%22,%2220%22,%221%22,%2220%22,%221%22,%2230%22,%223%22,%222%22,%223%22%5D&textReferences=false

Documento docs. con los códigos por puntos

Prueba de escritorio punto 2,4 y 3

2023 Asociación
Arte emergente | Todos los derechos reservados.
Creado con Webnode Cookies
¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar