
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:
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.
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


0