Realiza un programa menú que permita realizar opciones trabajando con 2 Pilas y 2 Colas listas.
La información que tiene cada nodo de las listas es la siguiente:
código de carrera: entero
nombre de la carrrera: 30 caracteres
número de semestres: entero
Menú de opciones:
1. Trabajando con Pilas
2. Trabajando con Filas o colas
3. Sacar nodo de la segunda Pila e insertar en la Primera Cola.
4. Sacar nodo de la segunada cola e insertar en la primera Pila.
5. Todos los nodos de la Primera pila agregar a la Primera Cola.
Para las opciones 1 y 2 debe realizar un submenú con las siguientes opciones.
Para opción 1.
1. Insertar nodos a la Primera Pila
2. Eliminar nodo en Primera Pila
3. Listar nodos Primera Pila.
4. Insertar nodos a la segunda Pila
5. Eliminar nodo en segunda Pila
6. Listar nodos segunda Pila.
Para opción 2
1. Insertar nodos a la Primera cola
2. Eliminar nodo en Primera cola
3. Listar nodos Primera cola.
4. Insertar nodos a la segunda cola
5. Eliminar nodo en segunda cola
6. Listar nodos segunda cola.
Para las opciones 3., 4., 5. y 6., usted debe llamar a los módulos de manejo de las listas en las funciones correspondientes.
Los algoritmos deben estar codificados en funciones con paso de parámetro.
(Ejemplo: Para insertar en pila debe ser una sola función para las 2 pilas pedidas; debe pasar parámetros para saber a cual se le agregará nodo…… esto es ig
Código c++:
Ver original
#include <stdio.h> #include <conio.h> struct pila { int cdo; char nombre[20]; int nusem; }; int tope,s,izq,dere,pil[10],pil2[10]; pila nod[10]; void crearpila( int &tope, int &maxpila, int &s) { do { }while((maxpila<=0 || maxpila>=11-1)); tope=0; s=1; } void insertarnodos( int &tope, int &maxpila, int &s) { if(s==1) { if(tope==max) else { tope=tope+1; pil[tope]=nod.nodo; } } } void borrar( int &tope, int &maxpila, int&s) { if(s==1) { if(tope==0) else { nodo=pila[tope]; tope=tope-1; } } } void listar( int &tope, int & maxpila, int &s) { if(s==1) if(tope==0) else for(i=1;i<=tope;i++) } int cola[9],maxcola,dere,izq,s1,nodo,i,j,k,n; void crear() { do { }while((maxcola<=0 || maxcola>=9-1)); izq=0; dere=0; s1=1; } void corremiento() { if(s1==1) { k=izq+1; n=dere-izq; for(j=0;j<=n;j++) { cola[i]=cola[k]; k++; } izq=0; dere=n; } } void insertar() { if(s1==1) if(dere==maxcola) if(izq==0) else{//llamada a una funcion corremiento de cola no se como se hace corremiento(); dere++; cola[dere]=nodo; } else{ dere++; cola[dere]=nodo; } } void eliminar() { if(s1==1) { if(izq==dere) else { nodo=cola[izq+1]; izq=izq+1; } } } void listar() { if(s1==1) { if(izq==dere) { } else { for(i=izq+1;i<=dere;i++) } } } void menu() { } switch(op) { case 1 : crearpila(tope1,maxpila1,s1); break; case 2 : crearpila(tope2,maxpila2,s2); break; case 3 : insertarnodo(tope1,maxpila1,s1); break; case 4 : insertarnodo(tope2,maxpila2,s2); break; case 5 : eliminarnodo(tope1,maxpila1,s1,nodo1); break; case 6 : eliminarnodo(tope2,maxpila2,s2,nodo2); break; case 7 : listarnodo(tope1,maxpila1,s1,nodo1); break; case 8 : listarnodo(tope2,maxpila2,s2,nodo2); break; case 9 : crearcola(tope1,maxpila1,s1,nodo1); break; case 10 : crearcola(tope2,maxpila2,s2,nodo2); break; case 11 : corremiento(tope1,maxpila1,s1,nodo1); break; case 12 : corremiento(tope2,maxpila2,s2,nodo2); break; case 13 : insertarncola(tope1,maxpila1,s1); break; case 14 : insertarncola(tope2,maxpila2,s2);break; case 15 : eliminarncola(tope1,maxpila1,s1); break; case 16 : eliminarncola(tope2,maxpila2,s2); break; case 17 : listarncola(tope1,maxpila1,s1); } esta es como la idea q tengo pero toi confundido. desd ya agradesco su ayuda :)