大家帮帮我看看这个 【双向的链表程序】
											删除节点后  输出有错误   程序代码:
程序代码:#include <stdio.h>
#include <malloc.h>
#include <string.h>
typedef struct node
{
    char name[20];
    struct node *prior,*next;
}stud;
stud *creat(int n)  //此处用到了typedef的功能
{
    stud *p,*h,*s;
    int i;
    h = (stud *)malloc(sizeof(stud));
    h->name[0] = '\0';
    h->prior = NULL;
    h->next = NULL;
    p = h;
    for (i=0;i<n;i++)
    {
        s = (stud *)malloc(sizeof(stud));
        p->next = s;
        printf("输入第%d学生的姓名\n",i+1);
        scanf("%s",s->name);
        s->prior = p;
        s->next = NULL;
        p = s;
    }
    p->next = NULL;
    return (h);
}
stud *search(stud *h,char *x)
{
    stud *p;
    char *y;
    p = h->next;
    while(p)
    {
        y = p->name;
        if(strcmp(y,x) == 0)
        {
            return (p);
        }
        else
            p = p->next;
    }
    printf("Can't Find It\n");
}
void del(stud *p)
{
    p->next->prior = p->prior;
    p->prior->next = p->next;
    free(p);
}
void main()
{
    int number;
    char sname[20];
    stud *head,*sp;
    puts("Long of the link\n");
    scanf("%d",&number);
    head = creat(number);
    sp = head->next;
    printf("Now The Link Is :\n");
    while(sp)
    {
        printf("%s   ",sp->name);
        sp = sp->next;
    }
    printf("\n");
    printf("Input the name you want to search\n");
    scanf("%s",sname);
    sp = search(head,sname);
    del(sp);
    printf("Now the Link is \n");
    while(sp)
    {
        printf("%s ",sp->name);
        sp = sp->next;
    }
    printf("\n");
    puts("\nAnykey to exit");
}
 
											





