#include <stdio.h>
#include <stdlib.h>
typedef struct sqlink
{
int data;
struct sqlink *next;
}sqlink;
int main()
{
int i;
sqlink *head;
sqlink *p,*q;
void OUT(sqlink *head);
void Reverse(sqlink *head);
void Reverse1(sqlink *head);
head=(sqlink*)malloc(sizeof(sqlink));
p=(sqlink*)malloc(sizeof(sqlink));
p->data=1;
head->data=0;
head->next=p;
for(i=2;i<5;i++)
{
q=(sqlink*)malloc(sizeof(sqlink));
q->data=i;
p->next=q;
p=q;
}
p->next=head->next;
OUT(head);
Reverse1(head->next);
OUT(head);
return 0;
}
void OUT(sqlink *head)
{
int i=1;
sqlink *q;
q=head->next;
while(i<=4)
{
printf("%d",q->data);
q=q->next;
i++;
}
printf("\n");
}
void Reverse(sqlink *head)
{
sqlink *p,*q,*r;
int i=0;
p=head->next;
q=p->next;
while(i<5)
{
r=q->next;
q->next=p;
p=q;
q=r;
i++;
}
}
void Reverse1(sqlink *L)
{
sqlink *p,*q,*r;
p=L;
q=p->next;
while(p!=q)
{
r=p;
while(r->next!=p)
r=r->next;
p->next=r;
p=r;
r->next=q;
}
q->next=L;
}
循环链表原地翻转|数据结构
最新推荐文章于 2024-03-13 11:24:34 发布