写一个算法,实现顺序表的就地逆置,即在原表的存储空间将线性表(a1,a2,...an-1,an)逆置为(an,an-1,...a2,a1).
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/25 21:52:16
写一个算法,实现顺序表的就地逆置,即在原表的存储空间将线性表(a1,a2,...an-1,an)逆置为(an,an-1,...a2,a1).
写一个算法,实现顺序表的就地逆置,即在原表的存储空间将线性表(a1,a2,...an-1,an)逆置为(an,an-1,...a2,a1).
写一个算法,实现顺序表的就地逆置,即在原表的存储空间将线性表(a1,a2,...an-1,an)逆置为(an,an-1,...a2,a1).
运行过了,没有任何问题,有什么不明白的可以交流下!
#include
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;idata);
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\n逆置之后链表中的元素为:\n");
while(b)
{
printf("%d,",b->data);
b=b->next;
}
printf("\n");
return 0;
}
c编程高手团队正在招新,有意者速速行动,一起学习,一起努力!