- #include<iostream>
- using namespace std;
//构造单向链表
typedef struct Lis
{
char ele;
int n;
Lis *next;
}Lis;
Lis* createLis(int n)
{
Lis *head=NULL;
Lis *p=NULL,*pre=NULL;
int i=0;
head=(Lis *)malloc(sizeof(Lis));
pre=head;
head->next=NULL;
for(i=0;i<n;i++)
{
p=(Lis *)malloc(sizeof(Lis));
cout<<"input the ele"<<endl;
cin>>p->ele;
cout<<"enter the n"<<endl;
cin>>p->n;
pre->next=p;
pre=p;
}
p->next=NULL;
return head;
}
void NiOut(Lis *h)
{
Lis *p=h->next;
if(p!=NULL)
{
NiOut(p);
cout<<p->ele<<" ";//这里的输出是回代过程,写到递归函数调用之后,否则会正序输出
}
if(p->next==NULL)
return;
}
void outLis(Lis *h)
{
Lis *p=NULL;
p=h->next;
while(p)
{
cout<<p->ele<<"\t"<<p->n<<endl;
p=p->next;
}
}
int main()
{
Lis *head=NULL;
int n=0;
cout<<"Input the number :"<<endl;
cin>>n;
head=createLis(n);
outLis(head);
NiOut(head);
return 0;
}