#include<stdio.h>
#include<malloc.h>
#define ElemType int
typedef struct Node
{
ElemType Data;
struct Node * Next;
}LNode,*LinkList;
LinkList Creat_LinkList_Head_Insert(void)
{
LNode * p;
LNode * q;
p=NULL;
LinkList Head;
ElemType elem;
Head=(LinkList)malloc(sizeof(LNode));
Head->Next=NULL;
q=Head;
printf("输入数字,输入为0时终止输入\n");
scanf("%d",&elem);
while(elem!=0)
{
p=(LinkList)malloc(sizeof(LNode));
p->Data=elem;
p->Next=NULL;
q->Next=p;
q=p;
scanf("%d",&elem);
}
printf("\n");
return Head;
}
LinkList Reverse_LinkList(LinkList Head)
{
LinkList p=NULL,q;
p=Head->Next;
Head->Next=NULL;
while(p)
{
q=p;
p=p->Next;
q->Next=Head->Next;
Head->Next=q;
}
return Head;
}
void Print(LinkList Head)
{
LinkList p;
p=Head;
while(p->Next!=NULL)
{
p=p->Next;
printf("%d ",p->Data);
}
printf("\n");
}
int Destroy_LinkList(LinkList Head)//销毁链表
{
LinkList p,q;
p=Head;
q=p->Next;
while(q->Next!=NULL)
{
free(p);
p=q;
q=q->Next;
}
free(p);
free(q);
return 0;
}
int main(void)
{
LinkList head;
head=Creat_LinkList_Head_Insert();
Print(head);
Reverse_LinkList(head);
Print(head);
Destroy_LinkList(head);
return 0;
}

417

被折叠的 条评论
为什么被折叠?



