大数据技术 链表解大数据相加减相乘
沉沙 2018-10-11 来源 : 阅读 1605 评论 0

摘要:本篇教程探讨了大数据技术 链表解大数据相加减相乘,希望阅读本篇文章以后大家有所收获,帮助大家对大数据技术的理解更加深入。

本篇教程探讨了大数据技术 链表解大数据相加减相乘,希望阅读本篇文章以后大家有所收获,帮助大家对大数据技术的理解更加深入。

<

单链表的运用
*/
#include
#include
#include

char c;
int flag;

typedef struct node
{
char data;
struct node *next;
} Node;

Node *a[10];

Node *create_link()
{
Node *head,*p;
head=p=NULL;
char m;
while(1)
{
scanf("%c",&m);
if(m=='\n'||m=='+'||m=='-'||m=='*')
{
if(m=='+')
c='+';
else if(m=='-')
c='-';
else if(m=='*')
c='*';
break;
}
p=(Node *)malloc(sizeof(Node));
p->data=m;
p->next=NULL;
if(head==NULL)
{
head=p;
}
else
{
p->next=head;
head=p;
}
}
return head;
}

Node *flash_back(Node *link)
{
Node *p=NULL,*head=NULL;
while(link)
{
p=(Node *)malloc(sizeof(Node *));
p->data=link->data;
p->next=NULL;
if(head==NULL)
{
head=p;
}
else
{
p->next=head;
head=p;
}
link=link->next;
}
return head;
}

void comp(Node *p1,Node *p2)
{
while(p1&&p2)
{
if(p1->data>p2->data)
flag=1;
else if(p1->datadata)
flag=0;
p1=p1->next;
p2=p2->next;
}
if(p1)
flag=1;
else if(p2)
flag=0;
}

Node *add(Node *p1,Node *p2)
{
char s;
int k=0;
Node *p,*head;
p=head=NULL;
while(p1&&p2)
{
s=p1->data+p2->data-'0'+k;
k=0;
if(s>'9')
{
s=s-10;
k=1;
}
p=(Node *)malloc(sizeof(Node));
p->data=s;
p->next=NULL;
if(head==NULL)
{
head=p;
}
else
{
p->next=head;
head=p;
}
p1=p1->next;
p2=p2->next;
}
while(p1)
{
p=(Node *)malloc(sizeof(Node));
s=k+p1->data;
k=0;
if(s>'9')
{
s=s-10;
k=1;
}
p->data=s;
p->next=head;
head=p;
p1=p1->next;
}
while(p2)
{
p=(Node *)malloc(sizeof(Node));
s=k+p2->data;
k=0;
if(s>'9')
{
s=s-10;
k=1;
}
p->data=s;
p->next=head;
head=p;
p2=p2->next;
}
if(k)
{
p=(Node *)malloc(sizeof(Node));
p->data=k+'0';
p->next=head;
head=p;
}
return head;
}


Node *sub(Node *p1,Node *p2)
{
char s;
int k=0;
Node *p,*head;
p=head=NULL;
while(p1&&p2)
{
if(p1->datadata)
{
s=p1->data+10-p2->data+'0'-k;
k=1;
}
else
{
s=p1->data-p2->data+'0'-k;
k=0;
}
p=(Node *)malloc(sizeof(Node));
p->data=s;
p->next=NULL;
if(head==NULL)
{
head=p;
}
else
{
p->next=head;
head=p;
}
p1=p1->next;
p2=p2->next;
}
while(p1)
{
p=(Node *)malloc(sizeof(Node));
s=p1->data-k;
k=0;
p->data=s;
p->next=head;
head=p;
p1=p1->next;
}
return head;
}

void print_link(Node *p);

Node *mul(Node *p1,Node *p2)
{
int i=0,j=0;
int s,k;
Node *head,*head1,*head2,*tail,*p;
head1=p1;
while(head1)
{
k=0;
head2=p2;
head=tail=NULL;
while(head2)
{
s=(head2->data-'0')*(head1->data-'0')+k;
k=0;
k=s/10;
s=s%10;
p=(Node *)malloc(sizeof(Node *));
p->data=s+'0';
p->next=NULL;
if(head==NULL)
{
head=p;
tail=p;
}
else
{
tail->next=p;
tail=p;
}
head2=head2->next;
}
if(k)
{
p=(Node *)malloc(sizeof(Node *));
p->data=k+'0';
p->next=NULL;
tail->next=p;
tail=p;
}
int i1=i;
while(i1>0)
{
p=(Node *)malloc(sizeof(Node *));
p->data='0';
p->next=head;
head=p;
i1--;
}
a[i]=head;
i++;
head1=head1->next;
}
Node *mu=NULL;
if(i==1)
{
Node *mk=(Node *)malloc(sizeof(Node));
mk->data='0';
mk->next=NULL;
return add(mk,a[0]);
}
else if(i==2)
return add(a[0],a[1]);
else
{
mu=add(a[0],a[1]);
for(j=2;j<i;j++)
{
mu=flash_back(mu);
mu=add(mu,a[j]);
}
return mu;
}
}

void print_link(Node *p)
{
Node *head;
head=p;
while(p)
{
if(head->data=='0'&&p->next)
{
head=p->next;
p=p->next;
continue;
}
printf("%c",p->data);
p=p->next;
}
/* while(p)
{
printf("%c",p->data);
p=p->next;
}*/
putchar('\n');
return ;
}

int main(void)
{
Node *p1,*p2,*p3;
int i;
flag=1;
for(i=0; i<10; i++)
a[i]=NULL;
p1=create_link();
p2=create_link();
if(c=='+')
p3=add(p1,p2);
else if(c=='-')
{
comp(p1,p2);
if(flag)
{
p3=sub(p1,p2);
}
else
{
putchar('-');
p3=sub(p2,p1);
}
}
else if(c=='*')
{
p3=mul(p1,p2);
}
print_link(p3);
return 0;
}    

本文由职坐标整理发布,学习更多的大数据技术相关知识,请关注职坐标大技术云计算大技术技术频道!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved