Comparacion de Valores utilizando pilas
Necesito ayuda, soy nuevo en el asunto de la programacion... y no puedo encontrar una logica para desarrollar un algoritmo utilizando solo pilas, que compare valores y extraiga el valor mas alto y el mas bajo.... porfavor se los agradeceria muchisimo
Hola vertigo!
Independientemente del tipo de contenedor que uses para tu pila, puedes iterar desde el principio hasta el fin, mientras vas comparando los valores almacenados para ver cuál es el menor y cual el mayor. También, puedes hechar mano de las funciones max_element y min_element de la biblioteca <algorithm> que en su versión más simple toman dos argumentos, un iterador para el primer elemento de la secuencia y otro para "pasado el último" (uno más allá del último).
Por ejemplo, si tienes los elementos de una sucesión guardados en un array:
int array[20];
for(int i=0; i<20; ++i) {
array[i] = rand(); // llena el array con números al azar.
}
//* max_element() y min_element() toman como parámetros
// la dirección del primer elemento del array y
// la del siguiente al último:
int* i= std::max_element(&array[0], &array[20]);
int *j= std::min_element(&array[0], &array[20]);
// muestra el mayor y el menor:
std::cout << " - El mayor: " << *i << std::endl;
std::cout << " - El menor: " << *j << std::endl;
//----------
Saludos,
Alejandro
Independientemente del tipo de contenedor que uses para tu pila, puedes iterar desde el principio hasta el fin, mientras vas comparando los valores almacenados para ver cuál es el menor y cual el mayor. También, puedes hechar mano de las funciones max_element y min_element de la biblioteca <algorithm> que en su versión más simple toman dos argumentos, un iterador para el primer elemento de la secuencia y otro para "pasado el último" (uno más allá del último).
Por ejemplo, si tienes los elementos de una sucesión guardados en un array:
int array[20];
for(int i=0; i<20; ++i) {
array[i] = rand(); // llena el array con números al azar.
}
//* max_element() y min_element() toman como parámetros
// la dirección del primer elemento del array y
// la del siguiente al último:
int* i= std::max_element(&array[0], &array[20]);
int *j= std::min_element(&array[0], &array[20]);
// muestra el mayor y el menor:
std::cout << " - El mayor: " << *i << std::endl;
std::cout << " - El menor: " << *j << std::endl;
//----------
Saludos,
Alejandro
