现在的位置: 首页 > 综合 > 正文

用C语言实现多项式合并(函数声明和主函数)

2014年09月05日 ⁄ 综合 ⁄ 共 1504字 ⁄ 字号 评论关闭

case1:幂递增

多项式L1:5 + 2X2  + 4X3 + 6X5

多项式L2:X + 3X2 + 8X4 + 7X5 +X8

L1 + L2 = 5 + X + 5X2 + 4X3 + 8X4 + 13X5 + X8

case2:幂任意

多项式L1:3X3 + 4X2 + 5 + X6 - 2X5 - 6X4

多项式L2:   -X + 5X3 + 2X2 + 5X6 - 3X5 + 6

L1 + L2 = 11 - X + 6X2 + 8X3 -6X4 -5X5 + 6X6

1.polylist.h

#ifndef _POLYLIST_H_

#define _POLYLIST_H_

typedef struct _ploynode_

{

int coef;

int exp;

struct _ploynode_ *next;

}polylist;

polylist * polylist_create();

void polylist_destroy(polylist *);

void polylist_clear(polylist *);

void polylist_insert(polylist *, int *);

void polylist_order_insert(polylist *, int *);

void polylist_union(polylist *,polylist *);

void polylist_display(polylist *);

#endif

3.main.c

#include <stdio.h>

#include "polylist.h"

int main()

{

polylist *L1 = NULL,*L2 = NULL;

//exponent is in order!

int a[][2] = {

{5, 0},{2,2},{4,3},{6,5}

};

int b[][2] = {

{1,1},{3,2},{8,4},{7,5},{1,8}

};

//exponent is in disorder!

int c[][2] = {

{5,0},{4,2},{3,3},{-6,4},{-2,5},{1,6}

};

int d[][2] = {

{6,0},{-1,1},{2,2},{5,3},{-3,5},{5,6}

};

int i;

//combination with exponent in order.

L1 = polylist_create();

L2 = polylist_create();

for(i=0; i < sizeof(a)/sizeof(int)/2; i++)

{

polylist_insert(L1,a[i]);

}

for(i=0; i < sizeof(b)/sizeof(int)/2; i++)

{

polylist_insert(L2,b[i]);

}

polylist_display(L1);

polylist_display(L2);

polylist_union(L1,L2);

polylist_display(L1);

polylist_destroy(L1);

//combination with exponent in disorder.

L1 = polylist_create();

L2 = polylist_create();

for(i=0; i < sizeof(c)/sizeof(int)/2; i++)

{

polylist_order_insert(L1,c[i]);

}

for(i=0; i < sizeof(d)/sizeof(int)/2; i++)

{

polylist_order_insert(L2,d[i]);

}

polylist_display(L1);

polylist_display(L2);

polylist_union(L1,L2);

polylist_display(L1);

polylist_destroy(L1);

return 0;

}


原文地址:点击打开链接

抱歉!评论已关闭.