#include // Ej 1 del Practico 4 struct nodo { int elem ; nodo * sig ; }; typedef nodo * lista ; /*ultimo: dada una lista no vacia, retorna su ultimo elemento*/ int ultimo(lista l){ while (l->sig != NULL){ l=l->sig; } return l->elem; } /*promedio: dada una lista no vacia, retorna el promedio de sus elementos*/ float promedio (lista l){ int suma=0; int cont=0; while (l!= NULL){ suma+=l->elem; cont++; l=l->sig; } return (float) suma/cont; } /*insOrden: dados un entero x y una lista l ordenada: inserta x en l ordenadamente*/ void insOrden (int elem, lista &l){ lista nuevo = new nodo; nuevo->elem=elem; nuevo->sig=NULL; if (l==NULL || l->elem >= elem){ // l==NULL lo ponemos primero pq si fuera NULL no tiene elem nuevo->sig = l; l = nuevo; }else{ lista aux=l; while (aux->sig!=NULL && aux->sig->elemsig; } nuevo->sig=aux->sig; aux->sig=nuevo; } } void imprimir(lista l){ lista aux=l; while (aux!=NULL){ printf("%d ", aux->elem); aux=aux->sig; } } int main() { lista l = NULL; insOrden(1, l); insOrden(3, l); insOrden(5, l); insOrden(4, l); printf("%d \n", ultimo(l)); printf("%.2f \n", promedio(l)); imprimir(l); return 0; }