Dev - C++ - Calcular Moda de los elementos de una Pila | C++

 
Vista:
sin imagen de perfil

Calcular Moda de los elementos de una Pila | C++

Publicado por Guy (1 intervención) el 08/09/2022 04:15:15
Hola, necesito calcular la moda de los elementos de una pila, tengo el siguiente código en el cual creo la estructura Nodo, el método Push, y en el método para calcular la moda lo que hago es recorrer la pila y pasar cada elemento a un arreglo de memoria dinámica:

1
2
int *vector;
vector=(int*)malloc(n*sizeof(int));

1
2
3
4
5
6
7
8
9
10
void Push(Nodo *&pila, int numero,int size){
 
Nodo *newNodo = new Nodo();
newNodo->dato = numero;
newNodo->next = pila;
pila = newNodo;
 
cout << "El numero ["<< numero << "] ha sido agregado a la pila exitosamente!\n";
size++;
}

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
int Moda(Nodo *pila,int size,int *vec){
 
int moda=0;
int contador=0,contador2=0;
int i=0;
 
if (pila==NULL){
    cout<<"La Pila esta vacia\n";
}else{
    while(pila!=NULL){
        pila->dato = (*(vec+i));
        pila=pila->next;
        i++;
    }
    for(i=0;i<size;i++){
       for(int j=0;j<size;j++){
         if(*(vec+i)==*(vec+j) && i!=j){
            contador++;
         }
       }
       if(contador>contador2){
            contador2 = contador;
            moda = (*(vec+i));
       }
       contador = 0;
    }
}
return moda;
}

pero al momento de calcular la moda, me modifica o me elimina los elementos de la pila y siempre me devuelve que la moda es igual a 0, cual sería el error o de que manera sería más sencillo calcularla? Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder