国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison 類庫下載 C#類庫 實(shí)現(xiàn)兩個(gè)指數(shù)遞減多項(xiàng)式的和與積

實(shí)現(xiàn)兩個(gè)指數(shù)遞減多項(xiàng)式的和與積

Oct 31, 2016 pm 02:13 PM

有兩個(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

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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?!

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Sujets chauds

Tutoriel PHP
1502
276