2021-03-29

一个星期了还是不懂。创建一个一元多项式链表并且实现相加
这是结构体
struct Linklist {
int val;//存值
int coe;
struct Linklist* next;//存下一个元素地址
};struct Linklist* p;//表头

在main函数中初始化表头
struct Linklist* heada= (struct Linklist*)malloc(sizeof(struct Linklist));
heada->next=null;

然后用这个函数尾插法插入元素
void Init(struct Linklist* L) {
Linklist* p = L;
int n ;
cout << “输入多少组数据”;
cin >> n;
for(int i=0;i<n;i++) {
struct Linklist* ptr = (struct Linklist*)malloc(sizeof(struct Linklist));
cin >> ptr->val;
cin >> ptr ->coe;
ptr->next = p->next;
p->next = ptr;
p = ptr;

};
	}

用同样方法创建b表后初始化c表并用函数相加最后爆出c6011错误

Linklist sum(struct Linklist* L1, struct Linklist* L2, struct Linklist* L3) {
Linklist* p1 = L1->next,* p2 = L2->next,* p3 = L3;
Linklist* p = L3;
while (p1&&p2) {
if(p1->coe == p2->coe){
struct Linklist* s= (struct Linklist*)malloc(sizeof(struct Linklist));
s->val = p1->val + p2->val;
s->coe = p1->coe;
p1 = p1->next;
p2 = p2->next;

	}
	else if ((p1->coe) > (p2->coe)) {
		struct Linklist* s = (struct Linklist*)malloc(sizeof(struct Linklist));
		s->val = p1->val;
		s->coe = p1->coe;
		p1 = p1->next;

	}
	else {
		struct Linklist* s = (struct Linklist*)malloc(sizeof(struct Linklist));
		s->val = p2->val;
		s->coe = p2->coe;
		p2 = p2->next;
	}
}
while (p2) {
	struct Linklist* s = (struct Linklist*)malloc(sizeof(struct Linklist));
	s->val = p2->val;
	s->coe = p2->coe;
	p2 = p2->next;


}
while(p1){
	struct Linklist* s = (struct Linklist*)malloc(sizeof(struct Linklist));
	s->val = p1->val;
	s->coe = p1->coe;
	p1 = p1->next;
}return* L3;

}

在调用了这个函数后内存突然升至2g怎么回事,如何解决,诚心求教

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值