Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/06/2013, 19:52
Avatar de swator
swator
 
Fecha de Ingreso: junio-2013
Mensajes: 6
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: PILAS Y COLAS-ayuda por favor

si,hice todo lo que pude !!!...te lo dejo aca.si podes decirme que es lo que esta mal y guiarme un poco te lo agradeceria.

#include <iostream>
#include <ramdom>

using namespace std;

typedef int t_dato;

typedef struct t_nodo{
t_dato dato;
t_nodo * sig;
};

typedef struct t_pila {
t_nodo *pila;
};

typedef struct t_cola {
t_nodo *frente;
t_nodo *fondo;
};
//----- Rutinas a completar


void encolar(t_cola *&cola, t_dato &dato) <---- COMPLETAR

void desapilar(t_pila *&pila, t_dato &dato) <---- COMPLETAR

bool pilaLlena(t_pila *pila) <---- COMPLETAR

void vaciarPila(t_pila *&pila,t_dato &dato) <---- COMPLETAR

void vaciarCola(t_cola *&cola,t_dato &dato) <---- COMPLETAR

bool colaVacia(t_cola *cola) <---- COMPLETAR

//-----
bool pilaVacia (t_pila pila){
return (pila.cab == NULL);
}
//-----
bool colaLlena (t_cola *cola){
t_nodo * aux = new t_nodo;
if (aux) {
delete aux;
return false;
} else
return true;
}

t_dato VerPrimero(t_cola *cola) {
if (ColaVacia(cola)) {
return -1;
} else {
return cola.frente->dato;
}
}
//----------------------------
t_dato ExtraerPrimero(t_cola *cola) {
t_dato valor;
t_nodo * nodo;
if (ColaVacia(cola)) {
cout << "NO HAY DATOS!";
esperar()
return -1;
} else {
nodo = cola.frente;
cola.frente = cola.frente->sig;
if (!cola.frente)
cola.fondo = NULL;
valor = nodo->dato;
delete nodo;
return valor;
}
}
}
//----------------------------
void limpiarPantalla(){
system("cls");
cout<<"***"<<endl<<"TC2 - Tercer examen de avance"<<endl<<"***"<<endl;
}
//----------------------------
void esperar(){
cout<<endl<<"Pulse una tecla para continuar..."<<endl;
getchar();
}

bool EsValido(t_cola cola, t_dato num) {
return (num < VerPrimero(cola));
}
//-----------------------------
void main (){
/*


t_pila * pilaRamdom;
t_dato dato;
t_dato num;
t_cola * cola;
cola=new t_nodo;
float Acum;
Acum=0;
int Cant;
Cant=0;

if (!(pilaVacia(pilaRamdom))){
apilar (pilaRamdom,dato)
}else{
cout<<"la pila esta vacia"<<endl;
}
if (!(pilaLlena(pilaRamdom))){
desapilar(pilaRamdom,dato)
}else{
cout<<"la pila esta vacia"<<endl;
}
desapilar(pilaRamdom,dato)
if(!(colaLlena (cola))){
encolar(cola,dato);
}
while(!(pilaVacia(pilaRamdom))){
desapilar(pilaRamdom,dato);
if(EsValido(t_cola cola, t_dato num)){
if(!(colaLlena (cola))){
encolar(cola,dato);
desapilar(pilaRamdom,dato);

}
}else{
desapilar(pilaRamdom,dato)

}
} while (!(colaVacia (cola))){
desencolar(cola,dato);
Acum=Acum+cola->frente.dato; //guardo la suma total de los numero de la cola.
Cant++ //guardo la cantidad de numeros.
cout<<cola->frente.dato<<end;//muestro el dato mientras no sea null.
cola=cola->frente *sig //avanzo.
}esperar()
limpiarPantalla();
cout<<"el promedio es :"Acum/Cant<<end;
vaciarCola(cola,dato);
}

Definir y e inicializar las estructuras necesarias
Apilar 100 números al azar.
Extraerlos de la pila y, si cumplen con la condición EsValido(cola, numero), encolarlos.
Mostrar por pantalla los números encolados y el valor promedio de los mismos.
Vaciar las estructuras que se necesiten vaciar antes de terminar el programa.
*/
}
aclaracion:se me mezclaron las llaves