有兩個(gè)指數(shù)遞減的一元多項(xiàng)式,寫一程序先求這兩個(gè)多項(xiàng)式的和,再求它們的積。
【提示】?用帶表頭結(jié)點(diǎn)的單鏈表作為多項(xiàng)式的存儲(chǔ)表示;要建立兩個(gè)單鏈表;多項(xiàng)式相加就是要把一個(gè)單鏈表中的結(jié)點(diǎn)插入到另一個(gè)單鏈表中去,要注意插入、刪除操作中指針的正確修改。
#include<iostream> #include<cmath> using namespace std; /** 數(shù)據(jù)結(jié)構(gòu)習(xí)題1 多項(xiàng)式的相加和相乘 @劉輝 **/ struct Node{ int data; int index; Node* next; }; Node *insertList(Node* head,Node* p); //插入鏈表 Node *createList(); //創(chuàng)建鏈表 void printList(Node *head); //打印鏈表 Node *addList(Node *p1,Node *p2); //實(shí)現(xiàn)加法運(yùn)算 Node *createList() { int index,data; Node *p,*head,*q; head = new Node; p = head; cout<<"請輸入要輸入的多項(xiàng)式a的冪指數(shù):"; cin>>index; cout<<"請輸入該指數(shù)的參數(shù):"; cin>>data; while(index!=0) { q = new Node; q->index = index; q->data = data; p->next = q; p = q; cout<<"請輸入要輸入的多項(xiàng)式a的冪指數(shù):"; cin>>index; cout<<"請輸入該指數(shù)的參數(shù):"; cin>>data; } p->next = NULL; return head; } //多項(xiàng)式相加 Node *addList(Node *p1,Node *p2) { int add; Node *temp,*head,*p3; p1 = p1->next; p2 = p2->next; head = temp = new Node; head->next = NULL; while(p1&&p2) { if(p1->index==p2->index) { add = p2->data + p1->data; if(add!=0) { p3 = new Node; p3->index = p2->index; p3->data = add; p3->next = NULL; } p1 = p1->next; p2 = p2->next; } else if(p1->index<p2->index) { p3 = new Node; p3->data = p2->data; p3->index = p2->index; p3->next = NULL; p2 = p2->next; } else { p3 = new Node; p3->data = p1->data; p3->index = p1->index; p3->next = NULL; p1 = p1->next; } if(head->next ==NULL) { head->next = p3; temp = p3; } else { temp->next = p3; temp = p3; } } temp->next = p1?p1:p2; return head; } //多項(xiàng)式相乘 Node* mulList(Node *p1,Node *p2) { Node *head,*temp,*s,*r,*q; head = new Node; head->next = NULL; temp = new Node; temp->next = NULL; p1 = p1->next; p2 = p2->next; for(s=p1;s;s=s->next) { for(r=p2;r;r=r->next) { q = new Node; temp->next = q; q->data = s->data * r->data; q->index = s->index + r->index; q->next = NULL; head = addList(temp,head); } } return head; } //打印多項(xiàng)式 void printList(Node *head) { Node *p = NULL; p = head->next; if(p==NULL) { cout<<"文件為空"; } else { do { if(p->data>=0) cout<<p->data<<"x^"<<p->index; else cout<<p->data<<"x^"<<p->index; if(p->next!=NULL) cout<<"+"; p=p->next; }while(p != NULL); cout<<endl; } } //主函數(shù) int main() { int i; Node *p1=NULL,*p2=NULL,*p3=NULL,*p4=NULL; cout<<"創(chuàng)建第一個(gè)多項(xiàng)式的鏈表:"<<"\n"; p1 = createList(); cout<<"\n"; cout<<"創(chuàng)建第二個(gè)多項(xiàng)式的鏈表:"<<"\n"; p2 = createList(); cout<<"第一個(gè)多項(xiàng)式為:"; printList(p1); cout<<"\n"<<"第二個(gè)多項(xiàng)式為:"; printList(p2); p3 = addList(p1,p2); //實(shí)現(xiàn)多項(xiàng)式相加 cout<<"\n"<<"多項(xiàng)式相加后為:"; printList(p3); cout<<endl; p4 = mulList(p1,p2); //實(shí)現(xiàn)多項(xiàng)式相乘 cout<<"多項(xiàng)式相乘后為:"; printList(p4); cin>>i; return 0; }
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud
Guide de construction de Grass Wonder | Uma musume joli derby
1 Il y a quelques mois
By Jack chen
<??>: 99 nuits dans la forêt - tous les badges et comment les déverrouiller
4 Il y a quelques semaines
By DDD
Uma Musume Pretty Derby Banner Schedule (juillet 2025)
1 Il y a quelques mois
By Jack chen
Guide de température de Rimworld Odyssey pour les navires et Gravtech
3 Il y a quelques semaines
By Jack chen
Windows Security est vide ou ne montre pas les options
1 Il y a quelques mois
By 下次還敢

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)