数据结构多项式操作及文件存取

⑴ 输入并建立多项式;
⑵ 输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……cn,en,其中n是多项式的项数,ci,ei分别为第i项的系数和指数。所有输出都按指数降序排列。
⑶ 多项式A和B相加,建立多项式A+B,输出相加的多项式;
⑷ 多项式A和B相减,建立多项式A-B,输出相减的多项式;
⑸ 多项式A和B相乘,建立多项式A×B,输出相乘的多项式;
⑹ 设计一个菜单,至少具有上述操作要求的基本功能。
(7) 通过文件输入、输出多项式

链式存储表示的类型定义

typedef struct ploy
{
   
	float coef;  /*系数部分*/
	int expn;    /*指数部分*/
	struct ploy *next;
}PLoy;

初始化链表,生成只有头结点的空链表

PLoy *init_Ploy_LinkList(void)
{
   
	PLoy *head;
	head = (PLoy *)malloc(sizeof(PLoy));
	head->coef = 0.0;
	head->expn = 0;
	head->next = NULL;
	return head;
}

将项(co,ex)以k的方式插入到以L为头指针的一元多项式链表中
插入后的一元多项式链表是按指数从大到小排列的

void add_ploy_item(PLoy *L,float co,int ex,int k)
{
   
	PLoy *pre = L, *p = L->next, *q;
	float x;
	while (p != NULL && p->expn > ex)
	{
   
		pre = p;
		p = p->next;
	}
	if (p == NULL)//链表已经到最后,开辟新结点,直接插入到最后
	{
   
		q = (PLoy *)malloc(sizeof(PLoy));
		q->coef = k*co;
		q->expn = ex;
		q->next = p;
		pre->next = q;
	}
	else if (p->expn == ex)//有同类项
	{
   
		x = p->coef + k * co;
		if (fabs(x) <= 
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值