#include
#include
#include
typedef struct LinkNode
{
int
data; //记录每个节点的整数(小于10000)
LinkNode *next,
*pre; //记录下一个节点的地址
*pre; //记录前一个节点的地址
}linklist;
linklist *head0;
linklist
*head1; //head0,head1分别记录两个整数链表的头指针
linklist *currptr;
linklist
*result; //result记录结果链表的头指针
//LinkList(); //构造函数,初始化链表
//LinkList1(); //析构函数,释放空间
//void Creat(char
a[]); //引入字符串,创立两个链表,分别表示两个整数
//void
Add(); //实现两个整数相加
//void
Display(); //显示结果
void
addtwo();
int sum(int n);
void
LinkList() //构造函数,初始化链表
{
//linklist *head0,*head1;
//linklist *currptr;
head0=(linklist
*)malloc(sizeof(linklist)); //申请一个空间记录整数的符号和节点数
head1=(linklist
*)malloc(sizeof(linklist));
result=(linklist
*)malloc(sizeof(linklist));
head0->next=head0;
head0->pre=head0; //初始化链表,建立双向循环链表
head1->next=head1;
head1->pre=head1;
result->next=result;
result->pre=result;
currptr=NULL;
}
void
LinkList1() //析构函数,释放空间
{
linklist
*p1=head0,*p2=head1,*p3=result;
//三个指针分别指向三条链表的头指针
while(p1!=p1->pre)
{
p1->pre->next=p1->next;
p1->next->pre=p1->pre;
currptr=p1;
p1=p1->next;
free(currptr);
}
while(p2!=p2->pre) //逐个删除节点,释放空间
{
p2->pre->next=p2->next;
p2->next->pre=p2->pre;
currptr=p2;
p2=p2->next;
free(currptr);
}
while(p3!=p3->pre)
{
p3->pre->next=p3->next;
p3->next->pre=p3->pre;
currptr=p3;
p3=p3->next;
free(currptr);
}
// delete p1;
// delete p2;
// delete p3;
}
void Creat(char
a[]) //引入字符串,创立两个链表,分别表示两个整数
{
int
i=0,j=0,m=0,n=0,k=0,l=0,s=0,w=0;
//i记录字符串,j记录加数节点数;s记录被加数节点数