注册 登录
编程论坛 C++教室

一元多项式实现加法时的困惑

泡vs泡happy 发布于 2013-11-06 23:00, 395 次点击
需要什么功能都知道,就是在写的时候想着想着就乱啦,有一些功能在用指针实现的时候不太会用,越想越乱,网上一些例子跟我现在学的知识不像一个套路,特此求add函数的高效代码,用基础的c++指针知识实现的,以供揣摩和学习,谢谢
3 回复
#2
peach54602013-11-07 07:59
你先写一个看看
无脑求代码是没人理你的...
#3
泡vs泡happy2013-11-07 10:18
下面是我昨天写的,思路已经被打乱啦,两个多项式输入输出没问题啦,这个相加函数实现不了

void add(){
    lnode *s1,*head1,*head2,*s4,*s2=NULL;
    head2=H2;
    head1=H1;
    int i=0;
    for(int i=0;i<m;i++){
        for(int w=0;w<n;w++){
            if(H1->b=H2->b){
                s1=new lnode;
                if(!s1){cout<<"空间分配错误";exit(1);}
                s1->a=H1->a+H2->a;
                s1->b=H1->b;
                i++;
                if(H3==NULL)
                H3=s1;
                else
                    s2->next=s1;
                s2=s1;
               
                }
            lnode *d;
            d=H1;
            H1=H1->next;
            delete d;
            d=H2;
            H2=H2->next;
            delete d;
            H1=H1->next;
            H2=H2->next;
               
        }
            
        if(H1->b!=H2->b){
            H2=H2->next;
        }
        for(int k=1;k<=i;k++){
        
        if(i>1&&H3->a>0)
            cout<<"+"<<H3->a<<"x^"<<H3->b;
        else
            cout<<H3->a<<"x^"<<H3->b;
        H3=H3->next;
        
        }
        
        }
    }
#4
左手拉一只猫2013-11-07 19:36
if(H1->b=H2->b)
目测这个判断语句不对吧。。。你这个一小段程序目测不好找错,虽然有些还是能推断出这个变量是什么意思,建议给个全的代码。这个实现多项式加法应该是数据结构中很基础的题目,你去自习看看书应该是可以解决这个问题的
1