图3-3-3 输入
计算机人论坛www.jsjer.com
4. 总结与展望
《数据结构》果然不是闹着玩的,要想学好,必须得下苦功夫!!!
5. 参考文献
[1]. 严蔚敏.数据结构[M].北京:清华大学出版社,2013。
计算机人论坛www.jsjer.com
6. 源代码清单
#include
Status input(LinkList &p) {
LinkList head,s; int v; int tamp;
tamp=0;
head=(LinkList)malloc(sizeof(LNode));
p=head;
while(tamp==0) /*创建n个元素的双向链表*/
{
scanf(\ /*束三个三个输入*/ if (v>=0) { s=(LinkList)malloc(sizeof(LNode)); s->data=v; /*赋值*/ p->next=s; /*连接*/ s->prior=p; p=s; } else tamp=1; /*为负数时结束*/ }
head=head->next; /*去掉头节点*/ head->prior=NULL; /*让双向链表前后都为空*/
p->next=NULL; return OK; }
Status output(LinkList &p,LinkList &head) /*输出*/ {
LinkList s; s=head;
while(s!=NULL) { if(s->data>=100) printf(\ if(s->data>=10 && s->data<100) printf(\ if(s->data>0 && s->data<10) printf(\ s=s->next; }
return OK; }
Status max_add(LinkList &head1,LinkList &head2,LinkList &p1,LinkList
&p2) /*链 表 加 法*/
{
LinkList p,q; int n=0,m=0; p=head1; q=head2;
while(p!=NULL) /*遍历链表 然后记录链表长度*/ { n=n+1; p=p->next; }
while(q!=NULL) /*遍历链表 然后记录链表长度*/
{ m=m+1; q=q->next; }
p=p->prior; q=q->prior;
if(n>=m) /*当head1 大于 head2时*/
{ while(q!=NULL) { p->data=p->data+q->data; /*两个链表相加 直到其中一个走完 或者 全都走完结束*/
if(p->data>=1000) { p->prior->data=p->prior->data+1; p->data=p->data00; } p=p->prior; q=q->prior; } while(p!=NULL) /*当出现进位 但是前面却为空时需要申请一个空间然后放进去进的位数*/
{ if(p->data>=1000) { if(p->prior==NULL) { q=(LinkList)malloc(sizeof(LNode)); q->data=1; p->prior=q;
q->next=p; q->prior=NULL; p=NULL; } else { p->prior->data=p->prior->data+1; p->data=p->data00; p=p->prior; } } } output(head1,p1); }
if(n
q->prior->data=q->prior->data+1;
计算机人论坛www.jsjer.com
q->data=q->data00; q=q->prior; } } } output(head2,p2); }
return OK; }
Status max_sub(LinkList &head1,LinkList &head2,LinkList &p1,LinkList &p2) /*链 表 减 法*/
{
LinkList p,q; int n=0,m=0; p=head1; q=head2;
while(p!=NULL) /*遍历链表 然后记录链表长度*/ { n=n+1; p=p->next; }
while(q!=NULL) /*遍历链表 然后记录链表长度*/
{ m=m+1; q=q->next; }
p=p->prior; q=q->prior;
if(n>=m) /*当head1 大于 head2时*/
{ while(q!=NULL) { p->data=p->data-q->data; /*两个链表相加 直到其中一个走完 或者 全都走完结束*/
if(p->data<0) { p->prior->data=p->prior->data-1;