单链表应用:八进制加法
假设用不带头结点的单链表表示八进制数,例如八进制数536表示成如图所示单链表。要求写一个函数Add,该函数有两个参数A和B,分别指向表示八进制的单链表,执行函数调用Add(A,B)后,得到表示八进制A加八进制B所得结果的单链表,结果保留在单链表A中。【输入说明】A表的长度和A表中八进制的数码;(中间用空格隔开)
B表的长度和B表中八进制的数码;(中间用空格隔开)
【输出说明】八进制A加八进制B所得结果
3
5 3 6
2
5 4
【输出样例】
612
补全剩余的代码
#include<iostream>
usingnamespacestd;
typedefintDataType;
typedefstructnode{
DataTypedata;
node*next;
}node;
//尾插法构造单链表
voidinit(node*&first,intlen)
{
first=NULL;
node*rear;
for(inti=0;i<len;++i){
DataTypeelem;
cin>>elem;
node*s=newnode;
s->data=elem;
s->next=NULL;
if(first==NULL){
first=s;
rear=first;
}
else{
rear->next=s;
rear=s;
}
}
}
//八进制A加八进制B,结果存在链表A中
voidadd(node*A,node*B)
{
}
voidreverseList(node*&first)
{
}
voidshow(node*first)
{
node*p=first;
if(p==NULL)cout<<"Empty";
else{
while(p!=NULL){
cout<<p->data;
p=p->next;
}
cout<<endl;
}
}
intmain()
{
node*A,*B;
intaLen,bLen;
cin>>aLen;
init(A,aLen);
cin>>bLen;
init(B,bLen);
reverseList(A);
reverseList(B);
add(A,B);
reverseList(A);
show(A);
return0;
} 假设你其他的代码没问题,那是大位放在链表头还是反过来?你没说清啊?而且你的构建一个链表的函数感觉有问题 召唤风云 发表于 2020-10-6 23:13
假设你其他的代码没问题,那是大位放在链表头还是反过来?你没说清啊?而且你的构建一个链表的函数感觉有问 ...
这个是程序补全题,上面的代码是老师给的 那是大位放在链表头还是反过来? 召唤风云 发表于 2020-10-7 20:10
那是大位放在链表头还是反过来?
大位肯定是放在链表头的,因为先把两个链表都逆序后相加,相加完存在A链表中,又逆序了一次,但是不知道该如何填空
页:
[1]