数据结构—线性表—八进制数加法
来源:互联网 发布:js cookie 跨域 编辑:程序博客网 时间:2024/06/08 19:59
问题描述:
假设用不带头结点的单链表表示八进制数,要求写一个函数add,该函数有两个参数p,q分别指向表示八进制数的链表,返回所得结果数的链表。
代码实现:
/*线性表实现八进制加法,可改为其他进制下加法运算,适用于大数的加法思路:用一个没有头结点,指针所指为最高位的链表来存储八进制数,每个节点存一位首先为了便于运算,把链表逆置,执行加法运算,得到的结果采取头插法建立结果链表。*/#include<iostream>using namespace std;struct OctalNode//定义链表 {int value;OctalNode *next = NULL;};OctalNode* input(OctalNode *list)//尾插法输入八进制数 即按照正常阅读方式输入 {int x;OctalNode* r=NULL;while (cin >> x&&x != -1)//输入-1时输入结束 {OctalNode* node;node = new OctalNode;node->value = x;if (list == NULL){list = node;r = list;}else{r->next = node;r = node;}}return list;}OctalNode* reserve(OctalNode* list)//将链表逆置{OctalNode *p, *pre, *r;pre = list;p = pre->next;pre->next = NULL;while (p->next != NULL){r = p->next;p->next = pre;pre = p;p = r;}p->next = pre;list = p;return list;}void output(OctalNode* list)//输出链表{OctalNode *p;p=list;while (p!= NULL){cout << p->value;p = p->next;}}int main(){OctalNode *p = NULL, *q = NULL, *head = NULL, *now;int flag = 0, temp = 0;p=input(p);q=input(q);p=reserve(p);q=reserve(q);while (p&&q)//由低位到高位依次相加{temp = p->value + q->value + flag;now = new OctalNode;now->value = temp % 8;flag = temp / 8;//判断进位now->next = head;head = now;p = p->next;q = q->next;}if (q == NULL) q = p;//统一归结为对剩下一个链表的处理while (q != NULL){temp = q->value + flag;now = new OctalNode;now->value = temp % 8;flag = temp / 8;now->next = head;head = now;q = q->next;}if (flag != 0){now = new OctalNode;now->value = temp % 8;}output(head);return 0;}
阅读全文
0 0
- 数据结构—线性表—八进制数加法
- 八进制加法链表
- 数据结构--线性表--一元多项式加法运算
- 数据结构—线性表
- 数据结构—线性表
- 数据结构—线性表
- 数据结构—线性表
- [数据结构]线性结构——线性表
- 【数据结构】第1周 线性表 1:多项式加法
- 数据结构(3)--线性表实现一元多项式加法
- 线性表-多项式加法(数据结构基础 第2周)
- POJ-数据结构与算法-线性表 多项式加法
- 数据结构——线性表
- 数据结构——线性表
- 数据结构——线性表
- 数据结构——线性表
- 数据结构——线性表
- 数据结构——线性表
- deeplearn.js入门
- 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- Java不同类型字符转换String/int/Float/////
- SpringBoot学习-(九)SpringBoot中的AOP
- String,对象,Map,json互转封装类
- 数据结构—线性表—八进制数加法
- [ReactNative]ViewPager不显示图片
- cakes
- ajax response 导出文件
- 机器学习实践-k近邻算法-约会网站配对源码
- can't start git:usr/bin/git
- 通过函数给指针申请内存时遇到的内存泄漏问题
- js的slice,substring,substr,split用法
- 取double类型的几位有效数字