如何在原表的存储空间将线性表(a1,a2,...,an)逆置为(an,an-1,...,a1).

来源:百度知道 编辑:UC知道 时间:2024/05/26 05:06:59
我要知道详细的解题过程

#include <stdio.h>
int main()
{
typedef struct Lnod
{
int data;
struct Lnod *next;
}Lnod,*Linklist;

Linklist p,m,n,r,L,a,b;
int i;
L=(Linklist)malloc(sizeof(Lnod)*5);
if(!L)exit(0);
L->next=NULL;
for(i=0;i<5;i++)
{
p=(Linklist)malloc(sizeof(Lnod));
if(!p)exit(0);
scanf("%d",&p->data);
p->next=L->next;
L->next=p;
}
a=L->next;
printf("原来的链表中的元素为:\n");
while(a)
{
printf("%d, ",a->data);
a=a->next;
}
printf("\n");

m=L->next;
n=m->next;
while(n->next)
{
r=n->next;
n->next=m;
m=n;
n=r;
}

n->next=m;
L->next->next=NULL;
L->next=n;

b=L->next;

printf("\n&