设计一个程序实现两个任意长的证书的求和运算

来源:百度知道 编辑:UC知道 时间:2024/05/27 02:37:26
利用双向循环链表,设计一个实现任意长的整数进行加法运算的演示程序。要求输入和输出每四位一组,组间用逗号隔开。如:1,0000,0000,0000,0000,用C语言

/*
利用双向循环链表,设计一个实现任意长的整数进行加法运算的演示程序。
要求输入和输出每四位一组,组间用逗号隔开。如:1,0000,0000,0000,0000,
用C语言
*/

#include <stdio.h>

typedef struct bignumdata
{
int data ; /* 4 digits */
struct bignumdata * next , * prev ;
} BIGNUMDATA ;

typedef struct bignum
{
BIGNUMDATA * head ;
int length ;
} BIGNUM ;

BIGNUMDATA * addnode(BIGNUMDATA * * ppnode)
/* 在node所在链表当中node的前面添加单个节点
如果ppnode指向的节点是空指针,那说明链表空,会添加第一个;
返回NULL说明操作失败
*/
{
if (ppnode==NULL)
return NULL ;

BIGNUMDATA *pnode, *pnew;
pnew=malloc(sizeof(BIGNUMDATA));
if (pnew==NULL)
return NULL ;
pnew->data=0;
pnode=*ppnode ;
if (pnode==NULL)
{
*ppnode = pnew ;
pnew -> next = pnew ;
pnew -> prev = pnew ;
return pnew ;
}
pnew->next = pnode ;
pnew->prev = pnode->prev ;
pnod