zoukankan      html  css  js  c++  java
  • 一元多项式的表示及相加

      1 #include <iostream>
      2 #include<stdlib.h>
      3 
      4 using namespace std;
      5 
      6 typedef struct LNode
      7 {
      8     int coef;//系数
      9     int expn;//指数
     10     struct LNode *next;
     11 }LNode,*LinkList;
     12 
     13 
     14 int CreateList_L(LinkList &L,int n)//默认指数按升序排列
     15 {
     16     LinkList p,q;
     17     for(int i=0;i<n;i++)
     18     {
     19          p=(LinkList)malloc(sizeof(LNode));
     20          cout<<"输入元素系数:";
     21          cin>>p->coef;
     22          cout<<"输入元素指数:";
     23          cin>>p->expn;
     24          if(i==0)L=p;
     25          else q->next=p;
     26          q=p;
     27          p->next=NULL;
     28     }
     29    return 0;
     30 }
     31 
     32 
     33 int Display_L(LinkList L)
     34 {
     35     if(!L)cout<<"f(x)=0"<<endl;
     36     else
     37     {
     38         cout<<"f(x)="<<L->coef;
     39         if(L->expn)cout<<"*"<<"x^"<<L->expn;
     40         L=L->next;
     41         while(L)
     42         {
     43             if(L->coef>0)
     44             {
     45                 cout<<"+";
     46                 cout<<L->coef<<"*"<<"x^"<<L->expn;
     47             }
     48             else cout<<L->coef<<"*"<<"x^"<<L->expn;
     49             L=L->next;
     50         }
     51     }
     52     return 0;
     53 }
     54 
     55 
     56 int AddPolyn(LinkList La,LinkList Lb,LinkList &Lc)
     57 {
     58     LinkList pa,pb,p;
     59     int k=1;
     60     pa=La;pb=Lb;
     61     //确定“和多项式”的头结点
     62     while(k)
     63     {
     64          if(pa->expn<pb->expn){p=Lc=pa;pa=pa->next;k=0;}
     65          else if(pa->expn>pb->expn){p=Lc=pb;pb=pb->next;k=0;}
     66          else
     67          {
     68              pa->coef+=pb->coef;
     69              if(pa->coef)
     70              {
     71                   p=Lc=pa;
     72                   pa=pa->next;
     73                   k=0;
     74              }
     75              else
     76              {
     77                  pa=pa->next;
     78                  pb=pb->next;
     79                  if(!pa||!pb) break;
     80              }
     81          }
     82     }
     83     if(!pb&&pa){p=Lc=pa;pa=pa->next;}
     84     if(!pa&&pb){p=Lc=pb;pb=pb->next;}
     85     if(!pa&&!pb) Lc=NULL;
     86     //确定接下来的节点
     87     while(pa&&pb)
     88     {
     89         if(pa->expn<pb->expn){p->next=pa;p=pa;pa=pa->next;}
     90         else if(pa->expn>pb->expn){p->next=pb;p=pb;pb=pb->next;}
     91         else
     92         {
     93             pa->coef+=pb->coef;
     94             if(pa->coef)
     95             {
     96                   p->next=pa;
     97                   p=pa;
     98                   pa=pa->next;
     99                   pb=pb->next;
    100             }
    101             else
    102             {
    103                   pa=pa->next;
    104                   pb=pb->next;
    105             }
    106 
    107         }
    108     }
    109     while(!pb&&pa)
    110     {
    111         p->next=pa;
    112         p=pa;
    113         pa=pa->next;
    114     }
    115     while(!pa&&pb)
    116     {
    117         p->next=pb;
    118         p=pb;
    119         pb=pb->next;
    120     }
    121     return 0;
    122 }
    123 
    124 
    125 
    126 int main()
    127 {
    128     LinkList La,Lb,Lc;
    129     int m,n;
    130     cout<<"请输入La中的元素个数:";
    131     cin>>m;
    132     CreateList_L(La,m);
    133     cout<<"请输入Lb中的元素个数:";
    134     cin>>n;
    135     CreateList_L(Lb,n);
    136     AddPolyn(La,Lb,Lc);
    137     Display_L(Lc);
    138     return 0;
    139 }
    只有0和1的世界是简单的
  • 相关阅读:
    Hibernate-查询缓存
    Hibernate-二级缓存 sessionFactory
    Hibernate-二级缓存策略
    Hibernate-一级缓存session
    缓存和连接池的区别
    Hibernate-一对多的关系维护
    Hibernate-缓存
    Java基础-jdk动态代理与cglib动态代理区别
    Java基础-CGLIB动态代理
    Java基础-静态代理与动态代理比较
  • 原文地址:https://www.cnblogs.com/nullxjx/p/5901469.html
Copyright © 2011-2022 走看看