Este documento presenta el código fuente de un programa en C++ que implementa una pila y una cola utilizando estructuras de datos. Define las funciones y procedimientos necesarios para insertar y eliminar elementos de la pila y la cola, y para comprobar si están vacías. El programa principal permite al usuario ingresar números a la cola, eliminar los números pares e imprimir la cola con los números en orden inverso.
0 calificaciones0% encontró este documento útil (0 votos)
518 vistas7 páginas
Este documento presenta el código fuente de un programa en C++ que implementa una pila y una cola utilizando estructuras de datos. Define las funciones y procedimientos necesarios para insertar y eliminar elementos de la pila y la cola, y para comprobar si están vacías. El programa principal permite al usuario ingresar números a la cola, eliminar los números pares e imprimir la cola con los números en orden inverso.
Este documento presenta el código fuente de un programa en C++ que implementa una pila y una cola utilizando estructuras de datos. Define las funciones y procedimientos necesarios para insertar y eliminar elementos de la pila y la cola, y para comprobar si están vacías. El programa principal permite al usuario ingresar números a la cola, eliminar los números pares e imprimir la cola con los números en orden inverso.
Este documento presenta el código fuente de un programa en C++ que implementa una pila y una cola utilizando estructuras de datos. Define las funciones y procedimientos necesarios para insertar y eliminar elementos de la pila y la cola, y para comprobar si están vacías. El programa principal permite al usuario ingresar números a la cola, eliminar los números pares e imprimir la cola con los números en orden inverso.
Descargue como DOC, PDF, TXT o lea en línea desde Scribd
Descargar como doc, pdf o txt
Está en la página 1de 7
// pilas_comparacion.
cpp: define el punto de entrada de la aplicacin de
consola. // #include "stdafx.h" int _tmain(int argc, _TCH!" arg#$%& ' return () * // +rototipo de +resentacion de ,enus // -e insertan las li.rerias necesarias #include/iostream0 #include/conio.h0 #include/stdio.h0 #include/stdli..h0 using namespace std) // declaracion numero de #define /" -egmento de declaracion del arreglo de registros "/ struct nodo ' int num ) struct nodo " sig) * )struct nodo "tope_pila_aux, "ca._cola, "fin_cola) //declaracion funciones 1 procedimientos// #oid +2-H(nodo "" tope, nodo "insertar&) nodo " +3+(nodo ""tope&) .ool 4,+T5(nodo "tope_ca.&) // sir#e tanto para la pila como para la cola // #oid 67-4!T (nodo "" fin, nodo ""ca. , nodo "insertar&) nodo "48T!CT (nodo "" ca., nodo "" fin&) #oid 6,+!6,6!(nodo "impri&) #oid eliminar_num_pares(&) // #aria.les glo.ales // // +rograma principal #oid main(& ' // rea de declaracion de #aria.les locales .ool s9 :false) nodo "ne9nodo,"t) int opcion : (, numero ) char continuar$;(%) 9hile (opcion <: = & ' s1stem("cls"&) cout//">n ,472 +!67C6+? ") cout//">n>n>n") cout//" ;. 6ngresar numeros a la cola >n") cout//" @. eliminar numeros pares 1 retornar la cola in#ertida >n") cout//" =. salir =>n") cout//">n Aigite la opcion Bue desee: ") cin00opcion) s9itch (opcion& ' case ;: //3pcion ; s1stem("cls"&) printf(">n opcion ; lectura numeros >n >n"&) // ingresando datos pila // s9:false) 9hile(s9<:true& ' cout// "6ngrese un numero a la cola >n >n ") cin00numero)
ne9nodo:ne9 (nodo&) ne9nodoC0num:numero) 67-4!T(Dfin_cola,Dca._cola,ne9nodo&) cin.ignore(&) // e#ita Bue el gets reci.a la .asura Bue esta en el .uffer es decir limpia el .uffer // cout// "Aesea ingresar otro dato a la pila # ; >n73 CC0 precione ; >n-6 CC0 precione cualBuier tecla >n ") gets(continuar&)
if(strcmp(continuar,";"&::(&// comparamos las cadenas ' s9:true)
* *
s1stem("pause"&) .reaE) // fin case ; // case @: // 3pcion @ s1stem("cls"&) printf(">n opcion @ >n"&) cout// """""""""""""""""""""""""""""""""""""""""// endl) // eliminamos numeros pares eliminar_num_pares(&) cout//endl) s1stem(" pause"&) .reaE) case =: // opcion F s1stem("cls"&) printf(">n <<< dios <<<>n"&) .reaE) default: // 3pcion in#alida printf(">n ::::::::::::::::::::::::::::::"&) printf(">n < """" 3pcion 6n#alida """"" <"& ) printf(">n ::::::::::::::::::::::::::::::>n >n >n >n >n"&) s1stem("pause"&) * // fin del case * // fin del 9hile s1stem("pause"&) * // fin del main // funcion +2-H (pila GG&// #oid +2-H(nodo "" tope, nodo "insertar& ' nodo"aux) if (4,+T5("tope&& ' "tope:insertar) insertarC0sig:72??) *else ' aux:"tope) "tope:insertar) insertarC0sig:aux) * * // funcion pop (pilaCC& // nodo " +3+(nodo ""tope& ' nodo" retorno) retorno:"tope) "tope:retornoC0sig) retornoC0sig:72??) return (retorno&) * // funcion empt1 (pila #acia&// .ool 4,+T5(nodo "tope_ca.& ' if(tope_ca.::72??& ' return (true&) *else ' return (false&) * * // procedimiento imprimir #oid 6,+!6,6!(nodo "impri& ' cout//impriC0num//" ") * // procedimiendo insertar dato ala cola // #oid 67-4!T (nodo "" fin, nodo ""ca. , nodo "insertar& ' nodo "aux) if(4,+T5("ca.&& ' "ca.:insertar) "fin:insertar) insertarC0sig:72??) *else ' aux:"fin) auxC0sig:insertar) insertarC0sig:72??) "fin:insertar) * * // H27C637 48T!4! 27 AT3 A4 ? C3? // nodo "48T!CT (nodo "" ca., nodo "" fin& ' nodo " retorno) retorno:"ca.) "ca.:retornoC0sig) retornoC0sig:72??) if(4,+T5("ca.&& ' "fin:72??) * return(retorno&) * #oid eliminar_num_pares(& ' nodo "aux) int s9:() if(4,+T5(ca._cola&& ' cout//"la cola no tiene datos "//endl) *else ' 9hile(<(4,+T5(ca._cola&&& // mientras Bue la cola no este #acia ' aux:48T!CT(Dca._cola,Dfin_cola&) // extraemos un dato de la cola if(auxC0num I @<:(& // si el numero es impar entra ' +2-H(Dtope_pila_aux,aux&) // guardamos el dato extraido de la cola en una pila auxiliar *else ' s9:;) // se acti#a un s9iche Bue nos ser#irar para informar al cliente si almenos un numero par fue eliminado
* * // fin 9hile * // fin si
// ahora retornamos los datos ala cola en sentido contrario // aux:72??) // limpiamos puntero aux // 9hile(<(4,+T5(tope_pila_aux&&& // mientras la pila nop este #acia ' aux:+3+(Dtope_pila_aux&) // sacamos el dato de la pila auxiliar 67-4!T(Dfin_cola,Dca._cola,aux&) // insertamos dato en la cola *// fin 9hile // hacemos uso del s9 para informar al cliente si hu.ieron numeros pares eliminados o no if(s9::(& ' cout//"no se encontro ningun numero par por lo tanto no fue eliminado ningun dato "//endl) *else ' cout//"los numeros pares han sido eliminados corretamente "//endl) *// fin si // imprimimos la cola con los datos in#ertidos // aux:72??) // limpiamos puntero aux // cout//"la cola con los datos in#ertidos Buedo de esta manera "//endl) 9hile(<(4,+T5(ca._cola&&& // mientras la cola no este #acia ' aux:48T!CT(Dca._cola,Dfin_cola&) 6,+!6,6!(aux&)