单链表的应用——两个多项式求和
提到多项式想必定会想到其系数和指数,定义数据结构
typedef struct Polynomial{
float coe; // 多项式系数
int exp; //多项式指数
struct Polynomial *next;
}Polynomial,*Linklist;
之所以运用单链表实现该功能是因为会涉及数据的插入与删除等操作,单链表比顺序表灵活、方便。当在进行相加功能操作时,要比较当前指针所指结点的指数大小,如果不相等,就将较小的一个插入到pc所指结点后面,如果相等,就判断所指系数相加是否为零,如果为零就都删除,如果不为零就相加,将结果赋给要插入的结点系数。
void Add(Linklist &La,Linklist &Lb,Linklist &Lc){
Linklist pa,pb,pc,p,q;
pa=La->next;
pb=Lb->next;
pc=Lc=La; //pc和Lc指向La的头结点
while(pa&&pb){
if(pa->exp<pb->exp){
pc->next=pa;
pc=pa;
pa=pa->next;
}