Dev - C++ - Consulta ejercicio

 
Vista:
sin imagen de perfil

Consulta ejercicio

Publicado por Laura (1 intervención) el 17/07/2016 22:00:44
Gente.. tengo el Siguiente enunciado...

En un turno de examen, a medida que se corrigen las evaluaciones, se van apilando los exámenes.
Para organizar la información. Desarrollar:
a-) Generar una pila, guardando por cada evaluación la nota obtenida. La condición de fin la indica el alumno.
b-) Una vez terminada la evaluación, organizar la información obtenida en a) en una lista ordenada por nota, indicando

Nota ( campo ordenado) Cantidad de exámenes con esa nota.

UN SOLO NODO POR NOTA
c-) Mostrar la lista generada


El código es este.... Mi consulta es como hago el código para indicar la cantidad de examenes por nota y como lo muestro...
Es un ejemplo de final y tiene que ser usando punteros...
Si alguien me puede ayudar..., lo agradeceria muchisimo...
Si alguien es de capital federal y me puede explicar bien el tema de pilas, colas listas... lo agradeceria mi email es [email protected]


# include <conio.h>
# include <stdio.h>
# include <stdlib.h>
typedef struct eval nodo;
struct eval
{
int dato; //tipo de dato
nodo *sig; //puntero a la estructura
};


nodo *nuevonodo(void);
void apilar (nodo **, nodo *);
void listar (nodo*);
nodo desapilar (nodo **);

int main ()
{
nodo *pi=NULL, *q, datos;
int n;
printf ("\nIngrese nota (0 para salir): ");
scanf ("%d", &n);
fflush(stdin);
while(n)
{
q=nuevonodo();
apilar (&pi, q);
printf ("\nIngrese nota (0 para salir): ");
scanf ("%d", &n);
fflush(stdin);
}
printf ("\nContenido de la lita!!!");
listar (pi);
printf ("\nResultado de desapilar!!!");
while (pi)
{
datos=desapilar(&pi);
printf("\t%d", datos.dato);
}

getch();
return 0;
}

nodo* nuevonodo ()
{
static int i=1; //esta variable i no se borra
nodo *q;
q=(nodo*)malloc(sizeof(nodo));
q->dato=i++;
return q;
}

void apilar (nodo **pi, nodo *q)
{
q->sig=*pi;
*pi=q;
}

void listar (nodo *pi)
{
while (pi)
{
printf ("%d\n", pi->dato);
pi=pi->sig;
}
}

nodo desapilar (nodo **pi)
{
nodo *aux, datos;
aux=*pi;
datos=**pi;
*pi=(*pi)->sig;
free (aux);
return datos;
}
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