题目:创建一个双链表,然后逆置双链表。
程序分析:将双链表逆置,即是将双链表中的元素逆置,依次将双链表的结点按照头插法插入到一个新建链表的首位,即可实现双链表元素的逆置
代码如下:
#include<stdio.h>
#include<malloc.h>
typedef struct node
{
char name[20];
struct node *prior,*next;
}stud;
stud *creat(int n)/*创建链表*/
{
stud *p,*h,*s;
int i;
h=(stud *)malloc(sizeof(stud));/*动态分配内存*/
h->name[0]='/0';
h->prior=NULL;
h->next=NULL;
p=h;/*p始终用来指向链表的最后一个结点*/
printf("/n输入结点:/n");
for(i=1;i<=n;i++)
{
printf("请输入第%d个结点/n",i);
s=(stud *)malloc(sizeof(stud));
p->next=s;/*通过p->next=s,将s链入链表*/
scanf("%s",s->name);
s->prior=p;/*s的前驱指向p,将s链入链表*/
s->next=NULL;/*在s链入链表时成为最后一个结点,所以