编程论坛
注册
登录
编程论坛
→
C++教室
一元多项式实现加法时的困惑
泡vs泡happy
发布于 2013-11-06 23:00, 395 次点击
需要什么功能都知道,就是在写的时候想着想着就乱啦,有一些功能在用指针实现的时候不太会用,越想越乱,网上一些例子跟我现在学的知识不像一个套路,特此求add函数的高效代码,用基础的c++指针知识实现的,以供揣摩和学习,谢谢
3 回复
#2
peach5460
2013-11-07 07:59
你先写一个看看
无脑求代码是没人理你的...
#3
泡vs泡happy
2013-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