|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
假设用不带头结点的单链表表示八进制数,例如八进制数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>
- using namespace std;
- typedef int DataType;
- typedef struct node{
- DataType data;
- node* next;
- }node;
- //尾插法构造单链表
- void init(node*&first,int len)
- {
- first = NULL;
- node* rear;
- for(int i=0;i<len;++i){
- DataType elem;
- cin>>elem;
- node* s = new node;
- s->data = elem;
- s->next = NULL;
- if(first == NULL){
- first = s;
- rear = first;
- }
- else{
- rear->next = s;
- rear = s;
- }
- }
- }
- //八进制A加八进制B,结果存在链表A中
- void add(node* A,node* B)
- {
-
- }
- void reverseList(node* &first)
- {
-
- }
- void show(node* first)
- {
- node* p = first;
- if(p == NULL) cout<<"Empty";
- else{
- while(p != NULL){
- cout<<p->data;
- p = p->next;
- }
- cout<<endl;
- }
- }
- int main()
- {
- node*A,*B;
- int aLen,bLen;
- cin>>aLen;
- init(A,aLen);
- cin>>bLen;
- init(B,bLen);
- reverseList(A);
- reverseList(B);
- add(A,B);
- reverseList(A);
- show(A);
- return 0;
- }
复制代码 |
|