Dev - C++ - ayuda con un programa de pila en dev c++

 
Vista:

ayuda con un programa de pila en dev c++

Publicado por jorge moody (4 intervenciones) el 17/03/2020 02:03:09
determine el valor mayor y menor de todos los datos almacenados en una pila que contiene numeros enteros
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

ayuda con un programa de pila en dev c++

Publicado por Alfil (1444 intervenciones) el 17/03/2020 08:18:52
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include <iostream>
#include <cctype>
 
using namespace std;
 
 
struct nodoPila{
    int dato;
    struct nodoPila *ptrSiguiente;
 
};
 
typedef struct nodoPila NodoPila;
typedef NodoPila *ptrNodoPila;
 
void empujar(ptrNodoPila *ptrCima, int info);
void imprimePila(ptrNodoPila ptrActual);
int mayor(ptrNodoPila ptrActual);
int menor(ptrNodoPila ptrActual);
 
int main()
{
    ptrNodoPila ptrPila = NULL;
    char opcion;
    int valor;
 
    cout << "\nIntroducir valores en la pila:\n";
    do{
        cout << "\nValor: "; cin >> valor;
        empujar( &ptrPila, valor );
 
        cout << "\nIntroducir otro valor(S/n): "; cin >> opcion;
        opcion = toupper(opcion);
 
    }  while (opcion == 'S');
 
    cout << "\nLa pila introducida es: ";
    imprimePila(ptrPila);
 
    cout << "\nEl valor maximo es: " << mayor(ptrPila);
    cout << "\nEl valor minimo es: " << menor(ptrPila);
 
    cout << endl;
 
    return 0;
}
 
void empujar(ptrNodoPila *ptrCima, int info)
{
    ptrNodoPila ptrNuevo;
 
    ptrNuevo = new NodoPila;
 
    if (ptrNuevo != NULL)
    {
        ptrNuevo->dato = info;
        ptrNuevo->ptrSiguiente = *ptrCima;
        *ptrCima = ptrNuevo;
    }
}
 
void imprimePila(ptrNodoPila ptrActual)
{
    if (ptrActual ==  NULL)
        cout << "\nLa pila esta vacia" << endl;
 
    else
    {
        while (ptrActual != NULL)
        {
            cout << ptrActual->dato << "-> ";
            ptrActual = ptrActual->ptrSiguiente;
        }
 
       cout << "NULL\n";
    }
}
 
int mayor(ptrNodoPila ptrActual)
{
    int max;
 
    if (ptrActual ==  NULL)
    {
        cout << "\nLa pila esta vacia" << endl;
    }
     else
    {
        max = ptrActual->dato;
        while (ptrActual != NULL)
        {
            if (ptrActual->dato > max)
                max = ptrActual->dato;
 
            ptrActual = ptrActual->ptrSiguiente;
        }
        return max;
    }
}
 
int menor(ptrNodoPila ptrActual)
{
    int min;
 
    if (ptrActual ==  NULL)
    {
        cout << "\nLa pila esta vacia" << endl;
    }
     else
    {
        min = ptrActual->dato;
        while (ptrActual != NULL)
        {
            if (ptrActual->dato < min)
                min = ptrActual->dato;
 
            ptrActual = ptrActual->ptrSiguiente;
        }
        return min;
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar