数据结构 一元稀疏多项式 利用链式存储实现存储一元多项式,并计算两个一元多项式之和

一、实验原理

利用链式存储实现存储一元多项式,并计算两个一元多项式之和。一元多项式由系数和指数构成。

1、create()存储系数指数:首先建立一个头结点headLnode,从headLnode->next开始存入系数和指数,只有系数是0时,才表示这个多项式的结束,否则每次把系数和指数存入结点后,就把指针向后移动一个接着存入,直到输入的系数是0为止。返回的是一个带头结点的链表

2、Print()输出链表:只要当前指针指向的结点不是空,就把系数和指数输出,直到系数为0为止

3、Compare()比较指数大小:根据这个结果确定先插入哪个结点

4、AddLine()链表相加:先让hc=lc=ha,即相当于给hc和lc创建了一个头结点,然后以后通过比较得到的结点都插入了hc为头结点的链表中。

      比较:

       (1)ha为空,hb不为空,直接return(hb)

       (2)ha和hb都不空,通过比较指数大小,决定插入hc的顺序

二、参考程序

#include<stdio.h>

#include<stdlib.h>

#define NULL 0

typedef struct Lnode

{

  int coef;  //定义系数变量

  int exp;   //定义指数变量

  struct Lnode *next;   //定义指针next变量

 } Lnode,*LinkList;

 

 /*建立多项式列表*/

LinkList  create()

{                     

 int n;

  LinkList headLnode;

  LinkList  head;     

  LinkList p1,p2;    //定义p1,p2指针

  n=0;

  printf("请输入多项式(输入的数必须是整数,指数须从小到大依次输入,系数为零表示多项式结束)\n");

  p1=p2= ( LinkList)malloc(sizeof(Lnode)); /*开辟一个新单元*/

  scanf("%d%d",&p1->coef,&p1->exp);      /*录入多项式*/

  headLnode=(

  • 11
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值