雙鏈表 鍊錶合併 多項式相加演算法

2021-12-29 23:43:57 字數 1389 閱讀 9526

//單鏈表的合併

//鍊錶合併

//兩個鍊錶必須是有序的

#define maxsize 5

typedef int elemtype;

typedef struct linklist

linklist;

//建立鍊錶1

linklist *createlist1 ()

return (head);

}//建立鍊錶2

linklist *createlist2 ()

return (head);

}int main()

if(l1->data > l2->data )

if(l1->data == l2->data )

}if(l1->next= null)

lp->next=l2;

else

lp->next=l1;

while(1);

return 0;

}//迴圈鍊錶的條件: p->next=head;

//雙向鍊錶

adt:

typedef struct dullinklist

adp:

//新增乙個結點:假設在p,q中間新增乙個結點add:

dullinklist *add;

add=(dullinklist *)malloc(sizeof(dullinklist));

add.data=data;

p->next=add;

add->next=q;

q->prior=add

add->next=p;

//刪除乙個結點:

p->prior->next=p->next;

p->next->prior=p->prior;

free(p);

//線性表和鍊錶的應用——多項式的加減法

1)線性表表示法:

typedef struct linearlist

多項式的每一項都由級數和係數唯一確定,但是對於某些係數為0的項,會占用記憶體浪費資源

因此使用鍊錶

2)鍊錶表示法

typedef struct linklist

3)多項式相加:兩個鍊錶合併,係數為0的項刪掉

linklist *add(linklist *la,linklist *lb)

if(pa->series > pb->series)

if(pa->series = pb->series)

else

}} if(pa==null)

pc->next=pb ;

else

pc->next=pa ;

return (lc) ;

}

鍊錶實現多項式相加

均已除錯通過,編譯器為dev c 多項式相加程式,用鍊錶實現 係數 coefficient 指數exponent 多項式 multinomial include typedef struct lnode lnode,linklist 建立兩個鍊錶 int main while pr1 next pr...

鍊錶實現多項式相加

演算法attch c,e,d 建立乙個新結點,其係數 coef c 指數exp e 並把它鏈到 d 所指結點之後,返回該結點指標。polypointer attch int c int e polypointer d 演算法 padd 實現兩個多項式 a b 相加 c x a x b x polyp...

鍊錶實現多項式相加

全文參看 這裡寫鏈結內容 一 題目要求 使用鍊錶實現多項式的相加,最終輸出相加的多項式。預設鍊錶的指數為遞增。輸入時依次輸入係數和指數,以0 0 作為結束標誌。比如 多項式a 1 2 x 4 x 4 多項式b 2 2 x 5 x 4 輸入 0 1 2 1 4 4 0 0 2 0 2 1 5 4 0 ...