12月6日。 单链表的逆置。
#include<stdio.h>
#include<stdlib.h>
typedef struct student
{
int num;
struct student *next;
}node,*link;
node* chushihua()
{
node* head;
head=(node*)malloc(sizeof(node));
head->next=NULL;
return head;
}
void creatbytail(node* head)
{
node *p,*q;
int num;
p=head;
while(1)
{
scanf("%d",&num);
if(num==-1)
break;
q=(node*)malloc(sizeof(node));
q->num=num;
p->next=q;
p=q;
}
p->next=NULL;
}
void nizhi(node *head)
{
node *p,*q;
p=head->next;
head->next=NULL;
while(p)
{
q=p;
p=p->next;
q->next=head->next;
head->next=q;
}
}
void output(node *head)
{
node *p;
p=head->next;
while(p)
{
printf("--%d",p->num);
p=p->next;
}
}
int main()
{
node *ha;
ha=chushihua();
creatbytail(ha);
nizhi(ha);
output(ha);
return 0;
}
运行结果如下: 今天的分享到此结束,你学废了吗?
|