/* * poli.h */ #ifndef POLI #define POLI typedef struct termo *ap_poli; struct termo { float coef; int expo; ap_poli prox; }; /* Cria um polinomio formado por um único termo de coeficiente coef e expoente expo. */ ap_poli cria_termo(float coef, int expo); /* Soma os polinômios apontados por p e q, sem destruí-los e retorna o resultado. */ ap_poli soma(ap_poli p, ap_poli q); /* Multiplica o polinômio p por um escalar, sem destruí-lo, e retorna o polinômio resultante. */ ap_poli mult_escalar(ap_poli p, float escalar); /* Subtrai q de p e retorna o polinômio resultante. As funções multEscalar e soma podem ser utilizadas para fazer a subtração. */ ap_poli subtrai(ap_poli p, ap_poli q); /* Multiplica os polinômios apontados por p e q, sem destruí-los, e retorna o resultado. Os nós intermediários, criados durante o processo, devem ser destruídos. */ ap_poli multiplica(ap_poli p, ap_poli q); /* Retorna uma cópia do polinômio p. A função multEscalar pode ser utilizada para fazer a cópia. */ ap_poli copia(ap_poli p); /* Desaloca a memória correspondente ao polinômio p, que deve receber NULL ao final do processo. */ void libera(ap_poli* p); /* Escreve o polinômio apontado por p */ void escreve(ap_poli p); #endif