#include #include #include "polinomio.h" /* Función para crear un polinomio vacío */ void crearPoli(Polinomio P) { P->siguiente = NULL; } /* Función para insertar un término nuevo en una polinomio */ /* Se considera que los términos están ordenados de mayor a menor de acuerdo */ /* a su exponente y se inserta el término nuevo en el lugar que le corresponde */ void insertar_termino(int coeficiente, int exponente, PNodo P) { PNodo aux, temp, anterior, posterior; temp = (PNodo) malloc(sizeof(Nodo)); if (temp==NULL) { printf("La memoria está llena\n"); return; } temp->coeficiente = coeficiente; temp->exponente = exponente; temp->siguiente = NULL; aux = P->siguiente; if (aux == NULL) P->siguiente = temp; else if (exponente > aux->exponente) { temp->siguiente = aux; P->siguiente = temp; } else { anterior = posterior = P->siguiente; while ((exponente < posterior->exponente) && (posterior->siguiente != NULL)) { anterior = posterior; posterior = posterior->siguiente; } if (exponente < posterior->exponente) anterior = posterior; temp->siguiente = anterior->siguiente; anterior->siguiente = temp; } } void imprimirPoli(Polinomio L) { PNodo P; P = L->siguiente; while (P != NULL) { printf("%d %d ",P->coeficiente, P->exponente); P = P -> siguiente; } printf("\n"); } void main () { Polinomio P1, P2, P3, P4, P5; PNodo M; P1 =(PNodo) malloc(sizeof(Nodo)); if (P1 == NULL) { printf("The memory is full"); return; } crearPoli(P1); insertar_termino(3,2,P1); insertar_termino(4,3,P1); imprimirPoli(P1); P2 =(PNodo) malloc(sizeof(Nodo)); if (P2 == NULL) { printf("The memory is full"); return; } crearPoli(P2); insertar_termino(4,2,P2); insertar_termino(5,4,P2); imprimirPoli(P2); }