|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
#include <stdlib.h>
struct Node
{
int data;
Node *next;
};
Node *CreateLink() //创建链表
{
Node *head,*p,*q;
int Data;
head=p=q=(Node *)malloc(sizeof(Node));
printf("请输入数据\n");
scanf("%d",&Data);
while(Data>0)
{
q=(Node *)malloc(sizeof(Node));
q->data=Data;
p->next=q;
p=q;
printf("请输入数据\n");
scanf("%d",&Data);
}
p->next=NULL;
return head;
}
void PrintLink(Node *h) //输出链表
{
Node *p;
p=h->next;
while(p!=NULL)
{
printf("%-3d",p->data);
p=p->next;
}
printf("\n");
}
Node *InvertLink(Node *h) //链表的逆置
{
Node *p,*q;
p=h->next;
h->next=NULL;
while(p!=NULL)
{
q=p->next;
p->next=h->next;
h->next=p;
p=q;
}
return h;
}
void main()
{
Node *h;
h=CreateLink();
PrintLink(h);
printf("链表的逆置如下:\n");
h=InvertLink(h);
PrintLink(h);
}
|
|