1、2.4 线性表的应用举例一元多项式的表示及相加 一元多项式的表示:,可用线性表P表示,但对S(x)这样的多项式浪费空间,用数据域含两个数据项的线性表表示,其存储结构可以用顺序存储结构,也可以用单链表,单链表的结点定义,一元多项式相加,typedef struct node int coef,exp;struct node *next; JD;,设p,q分别指向A,B中某一结点,p,q初值是第一结点,比较 p-exp与 q-exp,p-exp exp: p结点是结果多项式中的一 项,p后移,q不动,p-exp q-exp: q结点是结果多项式中的一 项,将q插在p之前,q后移,p不动,p-exp
2、 = q-exp: 系数相加,0:从A表中删去p所指 结点 释放p,q,p,q后移,0:修改p系数域,释放q,p,q后移,运算规则,Ch2_7.c,算法描述,void add_poly(JD *pa,JD *pb) JD *p,*q,*u,*pre;int x;p=pa-next;q=pb-next;pre=pa;while(p!=NULL) ,p=pre-next;u=q;q=q-next;free(u);else u=q-next;q-next=p;pre-next=q;pre=q; q=u;if(q!=NULL)pre-next=q;free(pb); ,#include #include const SIZE=10;void main() int arrSIZE; int i; for (i=8;i=5;i-) arri+1=arri;arri=x;for (i=0;iSIZE;i+) coutarrit; coutendl;,作业:2.42.52.82.14,重点:线性表的顺序存储;线性表的链式存储;顺序表的插入、删除单链表的插入、删除 难点:双向链表的系列操作线性表的应用。,