Código
/* En el Codigo a continuacion, en la linea " " if ( pila.top() > mayor ) " " no logro comprender del todo --- por mas que haya escrito un comentario justificando lo que hace el IF --- como puede ser que el elemento que esta al comienzo de la Pila ( 10 ) sea MAYOR que la variable '' mayor ''', que alojara al Nro 40 . A continuacion, el Codigo = */ #include <iostream> #include <conio.h> #include <stack> // PILAS " LIFO " // Es como una Pila de Platos = // PRIMERO sale ( o muestro ) el LAST ultimo hasta llegar al // FIRST primero using namespace std; stack <int> pila; // Defino una Pila con Datos de Tipo Int int mayor; // Declaro la Variable " mayor " ya que // estoy buscando el Dato de tipo INT Mayor de toda la Pila int main( ) { pila.push(35); // Agrego el 1er Dato // Puedo LEERLO ... PERO NO ELIMINARLO pila.push(40); // Agrego el 2do Dato pila.push(20); // Agrego el 3er Dato pila.push(3); // Agrego el 4to Dato pila.push(10); // Agrego el 5to Dato : // Puedo LEERLO y ... ELIMINARLO ( P/ Leer/Editar los Anteriores Datos ) // A DIFERENCIA DE LAS " COLAS " EN LAS " PILAS " para // mostrar el 1er Dato ( o sea, el 5to ) NO SE UTILIZA // ''' front ''' SINO SE UTILIZA ''' top ''' while ( pila.size() > 0 ) // pila.size() determina la cantidad de Elementos que { // se encuentran en la Pila if ( pila.top() > mayor ) // Pese a q esto parezca incoherente ( 10 no es mayor que 40 ) { // ..... decimos " Si el Número actual que está al Comienzo de // la Pila ( QUE PARA ESTE RAZONAMIENTO YA NO ES EL " 10 " ) // es MAYOR al contenido en '' mayor '' ..... // ENTONCES Cambio el Valor que estaba '''' como MENOR '''' // Asignándole el LUGAR de '' Comienzo de la Pila '' mayor = pila.top(); // Le " Confiero " a '' mayor '' que sea el que esté // al Comienzo de la Pila } pila.pop(); // " BORRO " a éste para que el Bucle EVALÚE otro // Elemento -- si no, seguiría siempre Evaluando a '' mayor '' -- } cout << mayor << endl; getch (); } // Gracias de antemano. Saludos !