数据结构实验报告1

数据结构实验报告1

ID:6380286

大小:69.12 KB

页数:16页

时间:2018-01-12

数据结构实验报告1_第1页
数据结构实验报告1_第2页
数据结构实验报告1_第3页
数据结构实验报告1_第4页
数据结构实验报告1_第5页
资源描述:

《数据结构实验报告1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数据结构实验报告一——1.4长整数的四则运算电信提高0901班吕祺U200913911一.需求分析1.本程序中采用双向链表实现对长整数的存储与运算,每个节点含一个整型变量,每四位一组,组间可用逗号隔开。2.程序由用户输入数据(长整数可正可负),选择加法或减法运算,计算机计算出结果并反馈。3.程序由多个函数组成,函数见概要设计。二.概要设计本实验采用双向链表实现长整数存储。抽象数据类型定义:ADTLNode{数据对象:整型数数据关系:R1={

2、ai-1,ai∈D,ai-1

3、,3…,n}}ADTLNode2.链表的抽象数据类型:ADTList{:D={ai

4、ai∈DSLNode,i=1,2,..n,n≥0}数据关系:R1={

5、ai-1,ai∈D,ai-1

6、}ADTList1.每个节点只存储四位十进制数字,即不超过9999的非负整数,在本程序中若超过9999也可能得到正确结果,但不是标准的形式。2.双向链表有头指针,它的data值存储长整数的符号,-1为负,正数时直接存储第一个节点的值3.其他节点的data值存储四位整数4.尾节点指向NULL而非头结点,因为没有必要循环,且判断结束的标志可以为尾指针为空.还需要包含调用若干库文件:stdio.h,malloc.h等。三.详细设计1.宏定义及节点定义:#defineElemTypeinttypedefstr

7、uctLNode{ElemTypedata,carryin;//carryin为进位,有进位时为一,也可为借位structLNode*next,*prior;}*Link;typedefstruct{Linkhead;Linktail;//头为指针为LNode型}list;2.初始化链表函数:函数C代码:voidInitlist(list&L){structLNode*p;if((p=(LNode*)malloc(sizeof(LNode)))==NULL)exit(0);L.head=L.tail=

8、p;}3.赋值函数设计思路voidCreatlist(list&L){char*a;charss[1];a=ss;Initlist(L);structLNode*k;if((k=(LNode*)malloc(sizeof(LNode)))==NULL)exit(0);cin>>k->data>>*a;//a只能为逗号或者分号,分号代表结束if(k->data>0){L.head=L.tail=k;L.tail->next=NULL;L.tail->prior=NULL;//若为正数直接设之为头结点wh

9、ile(*a!=';')//输入不为‘;’时不断循环{structLNode*q;if((q=(LNode*)malloc(sizeof(LNode)))==NULL)exit(0);cin>>q->data>>*a;if(q->data>10000

10、

11、q->data<0)exit(0);if(*a==';'){L.tail->next=q;q->prior=L.tail;L.tail=q;L.tail->next=NULL;break;}q->prior=L.tail;L.tail->next=q;

12、L.tail=L.tail->next;}//while}//if(k->data>0)else{L.head->data=-1;L.head->next=(LNode*)malloc(sizeof(LNode));L.tail=L.head->next;//头结点数据域设为-1L.tail->data=-1*k->data;L.tail->prior=L.head;L.tail->next=NULL;L.head->prior=NULL;while(*a!=';'){structLNode*q;if

13、((q=(LNode*)malloc(sizeof(LNode)))==NULL)exit(0);cin>>q->data>>*a;if(q->data>10000

14、

15、q->data<0)exit(0);if(*a==';')输入为‘;’时结束循环{L.tail->next=q;q->prior=L.tail;L.tail=q;L.tail->next=NULL;break;}q->prior=L.tail;L.tail->next=q;L.tail=L

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。