版权声明:欢迎大佬批评指正!O(∩_∩)O https://blog.csdn.net/wyh1618/article/details/82694379
#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
int a[99];
typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LinkNode;
void invert(LinkNode *&L)//逆置
{
LinkNode *p=L->next;
LinkNode *r;
r=(LinkNode *)malloc(sizeof(LinkNode));
L->next=NULL;
while(p!=NULL)
{
r=p->next;
p->next=L->next;
L->next=p;
p=r;
}
}
void InitList(LinkNode *&L)//初始化链表
{
L=(LinkNode *)malloc(sizeof(LinkNode));
L->next=NULL;
}
void CreatList(LinkNode *&L,ElemType a[],int n)//创建链表
{
LinkNode *s,*r;
L=(LinkNode *)malloc(sizeof(LinkNode));
r=L;
for(int i=0;i<n;i++)
{
s=(LinkNode *)malloc(sizeof(LinkNode));
s->data=a[i];
r->next=s;
r=s;
}
r->next=NULL;
}
void DispList(LinkNode *L)//输出链表
{
LinkNode *p=L->next;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
void DestoryList(LinkNode *&L)//释放链表
{
LinkNode *pre=L,*p=L->next;
while(p!=NULL)
{
free(pre);
pre=p;
p=pre->next;
}
free(pre);
}
int main()
{
LinkNode *L;
L=(LinkNode *)malloc(sizeof(LinkNode));
InitList(L);
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
CreatList(L,a,n);
invert(L);
DispList(L);
return 0;
}