⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flexlist.h

📁 FLEXLIST Functions Facilitate Support of Linked Lists
💻 H
字号:
    /*

        flexlist.h

        Copyright 1989
        John W. Small
        All rights reserved

        PSW / Power SoftWare
        P.O. Box 10072
        McLean, Virginia 22102 8072
        (703) 759-3838

        1/14/89

    */

    #include    <stddef.h>      /*  size_t  */

    typedef int FlistData;      /* force host alignment */



    typedef struct FlistNode  *FlistN;

    struct  FlistNode {
      FlistN        next, prev;
      FlistData     data;
    };



    struct FlistHeader  {
      FlistN    front,  current, rear;
      unsigned  ncurrent, nodes;
      size_t    ndlen, hdlen;
      FlistData data;
    };

    typedef struct  FlistHeader *Flist;



    /* housekeeping primitives */

    Flist       mkFlist     (size_t  ndsize, size_t  hdsize);
    int         clrFlist    (Flist lptr);
    int         rmFlist     (Flist *lptrAddr);
    unsigned    nempty      (Flist lptr);
    void       *Flistdptr   (Flist lptr);

    /* stack and queue primitives */

    void       *pushdptr    (Flist lptr, void *bufAddr);
    int         pushn       (Flist lptr, FlistN nptr);
    int         popd        (Flist lptr, void *bufAddr);
    FlistN      popn        (Flist lptr);
    void       *topdptr     (Flist lptr, void *bufAddr);
    void       *iquedptr    (Flist lptr, void *bufAddr);
    int         iquen       (Flist lptr, FlistN nptr);

    /* current node primitives */

    unsigned    ncur        (Flist lptr);
    void       *curdptr     (Flist lptr);
    void       *mkcdptr     (Flist lptr, unsigned loc);

    /* list primitives */

    void       *insdptr     (Flist lptr, void *bufAddr);
    int         insn        (Flist lptr, FlistN nptr);
    int         deld        (Flist lptr, void *bufAddr);
    FlistN      deln        (Flist lptr);
    void       *nextdptr    (Flist lptr, void *bufAddr);
    void       *prevdptr    (Flist lptr, void *bufAddr);
    int         getd        (Flist lptr, void *bufAddr);
    int         putd        (Flist lptr, void *bufAddr);

    /* array primitives */

    int   stod  (Flist lptr, void *bufAddr, unsigned loc);
    int   rcld  (Flist lptr, void *bufAddr, unsigned loc);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -