网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
11月17日漏签0天
c++吧 关注:642,483贴子:2,116,693
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 2回复贴,共1页
<<返回c++吧
>0< 加载中...

诸位大神 帮帮忙了、、、课程设计啊啊、、、

  • 只看楼主
  • 收藏

  • 回复
  • 苏↗小小
  • throw
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
用c++编写一个计算 两个多项式和的 算法、、、
我弄出来了 但是不会改错、、


  • 苏↗小小
  • throw
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include<iostream.h>
#include<stdlib.h>
#include<math.h>
struct term {
double coef;
int exp;
};
typedef term elemtype;
struct LNode{
elemtype data;
LNode* next;
};
void InitList(LNode* &HL)
{
HL=NULL; }
bool InsertList(LNode* &HL,elemtype item,int pos)//插入
{
if(pos<-1){
cout<<"pos值无效!"<<endl; return false;
}
LNode* newptr;
newptr=new LNode;
newptr->data =item;
LNode* cp=HL;
LNode* ap=NULL;
if(pos==0){
while(cp!=NULL) {
if(item<cp->data ) break;
else {
ap=cp;
cp=cp->next;
}
}
}
else if(pos==-1)
while(cp!=NULL){ap=cp;cp=cp->next;}
else {
int i=0;
while(cp!=NULL){
i++;
if(i==pos)break;
else {
ap=cp;cp->next;
}
}
if(cp==NULL && i+1<pos) {
cout<<"pos值超出单链表长度加1!"<<endl;
return false;
}
}
if(ap==NULL) {
newptr->next=HL;
HL=newptr;
}
else
{
newptr->next=cp;
ap->next=newptr;
}
return true;
}
void ClearList(LNode*& HL)//清空
{
LNode* cp;
LNode* np;
cp=HL;
while (cp!=NULL) {
np=cp->next;
delete cp;
cp=np;
}
HL=NULL;
}
void TraverseList(LNode* HL)//遍历
{
while(HL!=NULL) {
cout<<HL->data <<" ";
HL=HL->next;
}
cout<<endl;
} void main()
{
LNode *a,*b;
InitList(a);InitList(b);
term ra[4]={{5,0},{3,2},{-6,3},{2,5}};
term rb[6]={{3,0},{4,1},{-2,2},{3,3},{-2,5},{9,6}};
int i;
for(i=3;i>=0;i--) InsertList(a,ra[i],1);
for(i=5;i>=0;i--) InsertList(b,rb[i],1);
cout<<"线性表a:";
TraverseList(a);
cout<<"线性表b:";
TraverseList(b);
LNode *c=PolyAdd2(a,b);
cout<<"";
TraverseList(c);
ClearList(a);ClearList(b);ClearList(c);
}
LNode*PolyAdd2(LNode *p1,LNode *p2)
{
LNode* p3;
p3= new LNode;
LNode *t1=p1, *t2=p2,*t3=p3;
while(t1 && t2) {
if (t1->data.exp<t2->data.exp) {
t3=t3->next=new LNode;
t3->data=t1->data;
t1=t1->next;
}
else if (t1->data.exp>t2->data.exp) {
t3=t3->next=new LNode;
t3->data=t2->data;
t12=t2->next;
}
else {
double a=t1->data.coef+t2->data.coef;
if(a!=0) {
term item={a,t1->data.exp};
t3=t3->next=new LNode;
t3->data=item;
}
t1=t1->next;
t2=t2->next;
}
}
while (t1) {
t3=t3->next=new LNode;
t3->data=t1->data;
t1=t1->next;
}
while (t2) {
t3=t3->next=new LNode;
t3->data=t2->data;
t2=t2->next;
}
t3->next=NULL;
t3=p3;
p3=t3->next;
delete t3;
return t3;
}



2025-11-17 11:27:56
广告
不感兴趣
开通SVIP免广告
  • 苏↗小小
  • throw
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼



登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 2回复贴,共1页
<<返回c++吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示