Red de conocimiento informático - Aprendizaje de código fuente - Programación de estructuras de datos con polinomios univariados

Programación de estructuras de datos con polinomios univariados

#includelt; stdlib.hgt;

#includelt; define M 3

typedef struct term

{ //Representación de elementos, elementos polinomiales como elementos de datos de LinkList

float coef //Coeficiente

int expn; //índice

estructura término *next;

}término;

void PolyInitiate(término **cabeza)

{

*head = (term *)malloc(sizeof(term));

(*head)-gt; next = NULL;

}

void CreatPolyn(term *P, int m)

{// Ingrese el coeficiente del término m, el índice del término de potencia más alto es m-1, cree un unidad que representa una lista enlazada única de polinomios P

P-gt; coef = 0.0;

int i

printf("Ingrese los coeficientes d en secuencia (no) los coeficientes de los elementos son 0)\n", m);

for (i = 0; i lt; m; i)

{ // Ingrese m elementos en secuencia

printf("Coeficiente con índice d", i);

scanf("f", amp; P-gt; coef

P-gt; = i;

P = P-gt; siguiente = (término*)malloc(sizeof(término));

P-gt; siguiente = NULL; * /

}

}

void Calculatepoly(término *x, término *y, término *z, int a)

{ //Calcula los polinomios x e y, suma a si es 0, resta si no es 0, el resultado es z

int i;

for(i = 0; i lt; M; i)

{

if(a!=0) z-gt;

else z-gt; coef = x-gt; coef - y-gt;

z-gt; expn = x-gt; Las siguientes son mis adiciones*/

z=z-gt; next=(term*)malloc(sizeof(term));

z-gt; /p>

x =x-gt;siguiente;

y=y-gt;siguiente;

}

}

void Printfpoly(término * z)

{//Polinomio de salida z

int i;

printf(" gx^d ", z-gt ; coef, z-gt; expn);

z = z-gt; siguiente

for(; z-gt; siguiente; z=z-gt; siguiente/* i=1; i lt; M; i */)

{

if(z-gt;c)

oef gt; = 0)printf(" ");

printf(" gx^d ", z-gt; coef, z-gt; expn);

} p>

putchar('\n');

}

void main(void)

{//Probar función principal

término *x, *y, *z;

int a;

printf("Ingrese 1 para sumar, ingrese 0 para restar");

scanf("d",amp;a);

PolyInitiate(amp;x);

PolyInitiate(amp;y);

PolyInitiate(amp; z);

CreatPolyn(x, M);

CreatPolyn(y, M);

Printfpoly(x); >

Printfpoly(y);

Calcularpoly(x, y, z, a);

Printfpoly(z);

}