• C语言最简单的双向链表源码


    #include <stdio.h>
    #include <stdlib.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]    = '';
        h->prior    = NULL;
        h->next        = NULL;
        p        = h;
    
        for ( i = 0; i < n; i++ )
        {
            s    = (stud *) malloc( sizeof(stud) );
            p->next = s;
            printf( "输入第个%d学生的姓名:", 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( "没有找到数据
    " );
    }
    
    
    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( "请输入链表的大小:" );
        scanf( "%d", &number );
        head    = creat( number );
        sp    = head->next;
        printf( "
    现在这个双向链表是:
    " );
        while ( sp )
        {
            printf( "%s ", &*(sp->name) );
            sp = sp->next;
        }
        printf( "
    请输入你想查找的姓名:
    " );
        scanf( "%s", sname );
        sp = search( head, sname );
        printf( "你想查找的姓名是:%s
    ", &*(sp->name) );
        del( sp );
        sp = head->next;
        printf( "
    现在这个双向链表是:
    " );
        while ( sp )
        {
            printf( "%s ", &*(sp->name) );
            sp = sp->next;
        }
        printf( "
    " );
        puts( "
    请按任意键退出..." );
    }
  • 相关阅读:
    模板方法模式
    结构型模式
    组合模式
    享元模式
    [STL离散化]Skyscrapers的lower_bound系列
    [水]浙大校赛补题
    [数]来自亮亮OJ的五道数学题
    [数]被数学淹没不知所措
    [tour]2019HUST onsite签到
    [树组BIT]训练两题重新理解ver.
  • 原文地址:https://www.cnblogs.com/ziwuxian/p/13992608.html
Copyright © 2020-2023  润新知