设有两个一元多项式:
多项式项的系数为实数,指数为整数,设计实现一元多项式的下列操作:
- 多项式链表建立:以(系数,指数)(例如(3,0)(-1,1))方式输入项建立多项式,返回所建立的链表的头指针;在输入一个多项式时如果遇到两项指数相同,可以选择舍弃、覆盖或者系数相加操作;
- 多项式排序:将所建立的多项式按指数非递减(从小到大)进行排序(也可以在建立时保证有序,创建一个有序链表);3,3 2,2 4,4 1,0
- 多项式相加:实现两个多项式相加操作。操作生成一个新的多项式,原有的两个多项式不变,可以返回生成的多项式的头指针;
- 多项式相减:实现两个多项式相减操作。操作生成一个新的多项式,原有的两个多项式不变,可以返回生成的多项式的头指针;
- 多项式的输出:按照
格式输出多项式;
- 主函数通过调用多项式链表建立函数,通过文件读取或者控制台输入两个多项式并分别输出;输出排序后的两个多项式;调用多项式相加函数实现多项式相加、相减操作,输出操作结果。
/* 多项式用单链表表示 */
typedef struct Pnode
{
int deg;
float coff;
struct Pnode *next;
} PolyNode;
PolyNode * ListInitiate_poly();
int PolyListDelete(PolyNode *head, int i, PolyNode *x);
int PolyListInsert(PolyNode *head, int i, PolyNode x);
int PolyListLength(PolyNode *head);
int PolyListGet(PolyNode *head, int i, PolyNode *x);
void PolyDestroy(PolyNode *head);
PolyNode* ListInitiate_poly()//链表初始化
{
PolyNode * head = (PolyNode *)malloc(sizeof(PolyNode));
head->next = NULL;
return head;
}
int PolyListLength(PolyNode *head) //多项式的项数
{
PolyNode *p = head;
&nb

本文介绍了一种使用单链表实现一元多项式的方法,包括多项式的建立、排序、相加、相减等操作,并提供了完整的代码实现及测试用例。
最低0.47元/天 解锁文章
9138

被折叠的 条评论
为什么被折叠?



