数据结构课程设计长整数四则运算.docx
《数据结构课程设计长整数四则运算.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计长整数四则运算.docx(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上数据结构课程设计题目:长整数四则运算班级学号学生姓名提交日期成 绩 计算机与通信工程学院长整数四则运算 一 需求分析: 问题描述:设计一个实现任意长的整数进行加法运算的演示程序。基本要求:利用双向循环链表实现长整数的存储,每个结点含一个整形变量。任何整形变量的范围是 -(215 - 1) (215 - 1)。输入和输出形式:按中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。在现实生活中有很多地方,例如航空航海、生物医疗等等方面,都需要很大的数来表示,这些用int甚至长整型long long都是远不够的,所以需要有一种算法来解决这种大数的表示和运算。该问题只要求了
2、大数的相加运算。二 详细设计:大致思路:【存储】用两个链表,每个节点保存一位数,在链表头保存数的正负,正数保存1,负数保存-1,如果是正数,后面每一位都储存正数,负数每一位都储存负数,数字按照链表头到链表尾从高位到低位的顺序;【相加】从两个链表的尾部开始同步向前相加,加完存到第一个链表,第二个加完的结点销毁,会存在两个链表不一样长的情况,没加的直接连到链表的前面,最高位的符号存到链表的头;【调整】根据表头的符号,调整后面的数字的值,中间会产生进位或者退位的问题,各个节点的符号不一定相同,但对于正负数都可以建立同样的调整模式,将正负到tmp中(1或-1)加或者减(tmp*10),然后对前一位加或
3、者减tmp*1即可。第一位保留符号不变,这样不用处理多余的进位,也就不用再产生新的节点,也不用保存符号。【输出】从前到后遍历已经处理好的表,将每一位进行输出就可以了。结构体定义struct Node Node *pre; Node *next; int data; 功能函数void Input(Node *p,Node *t)/处理输入和保存void disply(Node *h,Node *t,int l)/输出void add(Node *h1,Node *t1,Node *h2,Node *t2)/每一位相加int adjust(Node *h,Node *t)/将各个位的正负、大小、进
4、位进行调整源程序:#include#include#includeusing namespace std;struct Node Node *pre; Node *next; int data;void Input(Node *p,Node *t) Node * cur; string str; int tmp=1; char num; cinstr; if(str0=-) p-data=-1; tmp=-1; else p-data=1; cur = new Node; cur-data=str0-0; cur-pre=p; cur-next=t; t-pre=cur; p-next=cur
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 整数 四则运算
限制150内