1 / 41
文档名称:

数据结构实验报告(重邮)5个(共41页).docx

格式:docx   大小:309KB   页数:41页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构实验报告(重邮)5个(共41页).docx

上传人:rdwiirh 2022/3/30 文件大小:309 KB

下载得到文件列表

数据结构实验报告(重邮)5个(共41页).docx

文档介绍

文档介绍:精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
数据结构实验报告
*GetNumber(); //创建链表,放被加数与加数
Number *JiaFa(Number *num_1,Number *num_2); //加法函数
Number *JianFa(Number *num_1,Number *num_2); //减法函数
Number *number_1,*number_2,*number;
char ch; //存放运算符号
printf("Enter the first long number:");
number_1=GetNumber();
printf("put +or-:");
ch=getchar();
fflush(stdin); //吸收不相关的字符
精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
printf("Enter the second long number:");
number_2=GetNumber();
if(ch=='+')
number=JiaFa(number_1,number_2);
else
if(ch=='-')
number=JianFa(number_1,number_2);
printf("\n=\n");
PutNumber(number);
DestoryList(number);
DestoryList(number_1);
DestoryList(number_2);
printf("链表释放完成。\n");
}
Number *GetNumber() //得到两个链表
{
Number *p,*q,*List;
char ch;
p=(Number *)malloc(LEN);
List=p;
List->prior=NULL;
List->data=0; //加法时,放最高位进的1,否者999+1=000
ch=getchar();
while(ch!='\n')
{
if(ch>='0'&&ch<='9') //过滤非数字字符
{
q=(Number *)malloc(LEN);
q->data=ch-'0';
p->next=q;
q->prior=p;
p=q;
}
ch=getchar();
}
p->next=NULL;
List->prior=NULL;
return List;
} //加法分两种情况长度相同与不同
Number *JiaFa(Number *num_1,Number *num_2) //返回的数据为逆序
{
精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
Number *p,*q,*r,*s,*num=NULL;
int i=0,j=0;
r=num;
p=num_1;
while(p->next!=NULL)
{
i++;
p=p->next;
} //i表示number1数字的长度 p指向number节点
q=num_2;
while(q->next!=NULL)
{
j++;
q=q->next;
} //j表示number2数字的长度 q指向number节点
s=(Number *)malloc(LEN);
s->prior=NULL;
s->next=NULL;
num=s;
while(i--&&j--)
{
s->data=p->data+q->data;
if(s->data>9)
{
s->data-=10; //**处理两数相加大于9的情况,后面还有
if(i>j) //在长的数据上调