#include<iostream.h>
#include<malloc.h>
struct node
{
int num;
node *next;
};
void creatnode(node *&p,int a[],int n,int len)//递归建立一个链表
{
if(n<len)
{
p=(node *)malloc(sizeof(node));
p->num=a[n];
if(n==len-1)
{
p->next=NULL;
return;
}
creatnode(p->next,a,++n,len);
}
}
void creatfor(int a[],node *&root,int len)//不用递归for语句完成
{
node *p;
p=(node *)malloc(sizeof(node));
p->num=a[0];
root=p;
for(int i=1;i<len;i++)
{
node *q=(node *)malloc(sizeof(node));
q->num=a[i];
p->next=q;
p=q;
}
p->next=NULL;
}
void daozhi(node *&root)//倒置链表
{
if(root!=NULL)
{
node *p=root->next;
root->next=NULL;
while(p)
{
node *q=p->next;
p->next=root;
root=p;
p=q;
}
}
}
void main()
{
int a[5]={3,4,5,7,9};
node *root=NULL;
//creatnode(root,a,0,sizeof(a)/sizeof(int));
creatfor(a,root,sizeof(a)/sizeof(int));
daozhi(root);
node *p=root;
while(p!=NULL)
{
cout<<p->num<<" ";
p=p->next;
}
cout<<endl;
}