zoukankan      html  css  js  c++  java
  • 单链表实现多项式的合并(指数降序输出)

    #include<stdio.h>
    #include<malloc.h>
    #define ElemType int
    typedef struct ployNode{
     int coef,index;
     struct ployNode *next;
    };


    ployNode *insert_ployNode(ployNode *L,ployNode *newp){
     //按指数降序的方法插入
     ployNode *p,*q;
     if(L->next==NULL){
      newp->next=NULL;
      L->next=newp;
     }else{
      for(q=L,p=L->next;p;p=p->next){//主要实现节点的比较
       if(newp->index>p->index){
        q->next=newp;
        newp->next=p;
        break;
       }
       else if(newp->index==p->index){
        p->coef+=newp->coef;//合并同类项
        free(newp);//释放新节点
        break;
       }
       else{
        q=p;//如果新节点<已有节点,则继续前移查找
       } 
      }
      if(p==NULL){//如果查找完毕仍未找到要插入的地方,则插入尾部
       newp->next=NULL;
       q->next=newp;
      }
     }
     return L;
    }


    ployNode *create_ployNode(ployNode *L){
     //用insert_ployNode将无序的多项式降序插入到L中,
     //实现有序链表的创建
     ployNode *tail,*newp;
     int coef,index,count;
     
     //创建头结点
     L=(ployNode *)malloc(sizeof(ployNode));
     L->next=NULL;
     
     printf("请输入多项式的项数 ");
     scanf("%d",&count);
     
     for(int i=0;i<count;i++){
      printf(" 第%d项的系数coef=",i+1);
      scanf("%d",&coef);
      printf("第%d项指数的index=",i+1);
      scanf("%d",&index);
      
      newp=(ployNode *)malloc(sizeof(ployNode));//创建节点
      newp->coef=coef;
      newp->index=index;
      
      L=insert_ployNode(L,newp); 
     }
     return L;  
    }


    ployNode *merge_similarNode(ployNode *La,ployNode *Lb){
     //不破坏Lb的情况下合并多项式La,Lb。
     
     ployNode *p,*newp;
     for(p=Lb->next;p;p=p->next){
      newp=(ployNode *)malloc(sizeof(ployNode));
      newp->coef=p->coef;
      newp->index=p->index;
      La=insert_ployNode(La,newp);//利用insert_ployNode函数实现
      //多项式加法
     }
     return La;
    }


    void print(ployNode *L){
     ployNode *p;
     for(p=L->next;p;p=p->next){
      printf("conf=%d,index=%d ",p->coef,p->index);
     }
    }


    int main(){
     ployNode *La,*Lb;
     La=create_ployNode(La);
     print(La);
     printf(" ");
     Lb=create_ployNode(Lb);
     print(Lb);
     printf(" ");
     La=merge_similarNode(La,Lb);
     print(La);
     return 0;
    }

  • 相关阅读:
    Jmeterif controller 使用
    转载App测试工具大全
    Jmeter 官方在线文档&Android SDK 官方下载地址
    APP自动化之uiautomator2 +python3 UI自动化
    uiautomatorviewer不支持安卓 9.0或以上,提示:"error: obtaining UI hierachy"解决方法
    调查显示:软件开发公司出现“人才荒”
    浅谈Lean UX:我们到底该怎么设计?
    谷歌工程师再次公布Windows漏洞 并称微软很难合作
    灵活运用AppFlood:提高APP eCPM的10个技巧
    Spring Framework 4.0M1发布,支持JDK 8、Java EE 7
  • 原文地址:https://www.cnblogs.com/jiafeng1996/p/11291984.html
Copyright © 2011-2022 走看看