#include<iostream>
using namespace std;
typedef struct Node
{
int data;
Node *next;
}lnode,*list;
list listinit()
{
list L;
L=(lnode*)malloc(sizeof(list));
if(L==NULL)
cout<<"没有足够的内存空间!"<<endl;
L->next=NULL;
return L;
}
list listcreateTail()//Tail
{
int i,len,data;
list L,p,r;
L=(lnode*)malloc(sizeof(list));
L->next=NULL;
r=L;
cout<<"input the length of this list:"<<endl;
cin>>len;
cout<<"input the data of this list:"<<endl;
// cin>>data;
for(i=0;i<len;i++)
{
cin>>data;
p=(lnode*)malloc(sizeof(list));
p->data=data;
r->next=p;
r=p;
}
r->next=NULL;
return L;
}
list reverse(list L)
{
list p,q;
p=L->next;
L->next=NULL;
while(p)
{
q=p->next;
p->next=L->next;
L->next=p;
p=q;
}
return L;
}
void output(list L)
{
list p;
p=L->next;
while(p)
{
cout<<p->data<<" ";
p=p->next;
}
}
int main()
{
list L,Lr;
int k;
L=listcreateTail();
output(L);
cout<<endl;
Lr=reverse(L);
output(Lr);
system("pause");
return 0;
}
链表的反转
最新推荐文章于 2022-05-08 20:38:16 发布