簡體   English   中英

使用鏈表C ++添加2個多項式表達式

[英]Adding 2 Polynomial Expressions Using Linked List C++

下面是我的源代碼,它將生成由用戶輸入指定的2個多項式。 現在,我停留在如何將兩個多項式相加並顯示結果上。 我有一個想法如何評估我們將檢查列表中的指數。 如果相同,系數將相加。 如果不是,當前節點將前進到下一個節點並與另一個節點進行比較,對嗎? 其實我對鏈接列表很困惑。

 #include<iostream>
using namespace std;
class Node{
      public :
             int coef;
             int exp;
             Node *next;
      private:
      };

class List{
      public:
             List(){
                    head = NULL;
             }
             void insert(int x, int y){ //inserting node
                  Node *newNode = new Node;
                  newNode->coef = x;
                  newNode->exp = y;
                  newNode->next = NULL;

                  if(head==NULL){
                                 head = newNode;
                  }
                  else{
                       Node *currNode = head;
                       while(currNode->next!=0){
                             currNode = currNode->next;
                       }
                       currNode->next = newNode;
                  }
             }
             void display(){ //display the expression
                  Node *currNode = head;
                  cout<<"\n\n\t";
                  while(currNode->next!=0){
                        //cout<<"Coef: "<<currNode->coef<<"\t"<<"Expo: "<<currNode->exp<<endl;
                        cout<<currNode->coef<<"X^"<<currNode->exp<< "+";
                        currNode = currNode->next;
                  }
                  cout<<currNode->coef<<"X^"<<currNode->exp<<endl;
                  //cout<<"Coef: "<<currNode->coef<<"\t"<<"Expo: "<<currNode->exp<<endl;
             }
      private:
              Node *head;              
      };

int main(){

    List seq1,seq2;

    int x,y,a,b;
    cout<<"Enter your expression 1: "<<endl;

    while(cin>>x>>y,x!=0&&y!=-1){
            seq1.insert(x,y);
    }
    seq1.display();
    cout<<endl;
    cout<<"Enter your expression 2: "<<endl;

    while(cin>>a>>b,a!=0&&b!=-1){
            seq2.insert(a,b);
    }
    seq2.display();

    return 0;
}

如您所料,您需要遍歷每個列表並比較指數。 如果指數匹配,則將系數相加。 您想要更仔細地研究的是鏈接列表的使用方式。 當前,無論指數的值如何,都將在末尾添加多項式的每個新條目。 同樣,如果用戶兩次輸入相同的指數,則添加第二個節點。

如果將表達式保留在按指數排序的鏈表中,將使多項式加在一起變得更加容易,效率也將大大提高。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM