学习笔记------数据结构(C语言版)链表应用~一元多项式求和

这篇博客介绍了如何使用C语言基于链表数据结构实现一元多项式的加法操作。通过详细讲解和代码示例,阐述了链表节点的创建、多项式表示以及求和算法。
摘要由CSDN通过智能技术生成

//Polynomial.cpp

#include"predefined.h"
#include"Polynomial.h"
#include"ExtenLinkedList.h"

void CreatPolyn(polynomial *P,int m)
//算法2.22:输入m项的系数和指数,建立表示一元多项式的有序链表。
{
	Position h;
	Link q;
	int i;
	ElemType e;
	InitList_E(P);
	h=GetHead_E(*P);
	e.coef=0.0;
	e.expn=-1;
	SetCurElem_E(&h,e);
	(*h).next=NULL;
	for(i=1;i<=m;i++)
	{
		printf("▲请输入第%d组元素:",i);
		scanf("%f,%d",&(e.coef),&(e.expn));
		MakeNode_E(&q,e);
		InsFirst_E(P,h,q);
		h=(*h).next;
	}
}

void DestroyPolyn(polynomial *P)
//销毁一元多项式P
{
	DestroyList_E(P);
}

void PrintPolyn(polynomial P)
//打印输出一元多项式P
{
	int i;
	Link q;
	q=(*P.head).next;
	for(i=1;i<=P.len;i++)
	{
		if(i==1)
			printf("%g",(*q).data.coef);
		else
		{
			if((*q).data.coef>0)
			{
				printf("+");
				printf("%g",(*q).data.coef);
			}
			else
			{
				printf("-");
				printf("%g",-(*q).data.coef);
			}
		}
		if((*q).data.expn)
		{
			printf("X");
			if((*q).data.expn!=1)
				printf("^%d",(*q).data.expn);
		}
		q=(*q).next;
	}
}

int PolyLength(polynomial P)
//返回一元多项式P中的项数
{
	return ListLength_E(P);
}

int cmp(term a,term b)
//依a的指数值<(或=)(或>)b的指数值,分别返回-1、0和+1。
{
	if(a.expn<b.expn) return -1;
	else if(a.expn==b.expn) return 0;
	else return 1;
}

void AddPolyn(polynomial *Pa,polynomial *
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值