有两种方法:
一是:用头插法建立单链表,自然而然就实现了逆置的动态链表。
代码:
#include<stdio.h>
#include<malloc.h>
typedef int datatype;
typedef struct node
{
datatype data;
struct node * next;
}linklist;
linklist *creatlistf()
{
int n;
linklist * head,*s;
head=NULL;
printf("请输入要插入的结点个数:");
scanf("%d",&n);
printf("请输入%d个结点:",n);
while(n--)
{
s=(linklist *)malloc(sizeof(linklist));
scanf("%d",&s->data);
s->next=head;
head=s;
}
return head;
}
void show(linklist *head)
{
linklist *p;
p=head;
while(p!=NULL)
{
printf("%4d",p->data);
p=p->next;
}
}
int main()
{
linklist *head;
head=creatlistf();
show(head);
printf("\n");
return 0;
}
二是:1、尾插法建立单链表 2、逆置单链表
第2小步的过程是