求解:输出一个长整数,使用双向循环链表,每个结点只能存取小于10000的数。
#include<iostream.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include<string.h>
#include<fstream.h>
#include<iomanip.h>
typedef int datatype;
class linknode
{
public:
datatype data;
linknode *left,*right;
linknode(datatype &a,linknode *b=NULL,linknode *q=NULL)
{
data=a;left=b;right=q;
}
linknode(linknode *b=NULL,linknode *q=NULL)
{
left=b;right=q;
}
~linknode(){}
};
class linklist
{
public:
linknode *head;
public:
void a(int n);
int b(int p,int q);
void output();
};
void linklist::a(int n)
{
int p=n%10000;
int h=n/10000;
linknode *s;
s=new linknode;
s->data=p;
s->right=head;
head->right=s;
head->right=s;
s->left=head;
p=h%10000;
h=h/10000;
if(p!=0)
{
linknode *a;
a=new linknode;
a->right=head->right;
head->right->left=a;
head->right=a;
a->left=head;
a->data=p;
p=h%10000;
h=h/10000;
}
}
void linklist::output()
{
linknode *p;
p=head;
while(p!=NULL)
{
cout<<p->data<<",";
p=p->right;
}
cout<<endl;
}
void main()
{
linklist A;
int p;
cin>>p;
A.a(p);
A.output();
}