Annotation of researchv10no/cmd/odist/pax/src/lib/libodelta/suftree.h, revision 1.1

1.1     ! root        1: /* the type of list elements we play with */
        !             2: typedef char   Element;
        !             3: 
        !             4: /* for suffix trees, a tree node looks like this */
        !             5: typedef struct _ts_
        !             6: {
        !             7:        Element         *_label;        /* substring labeling the edge */
        !             8:        long int        _length;        /* the length of the string */
        !             9:        struct _ts_     *_child;        /* list of children */
        !            10:        struct _ts_     *_sibling;      /* link for the child list */
        !            11:        union
        !            12:        {       /* these two fields are mutual exclusive */
        !            13:                struct _ts_     *_link;         /* sub-link */
        !            14:                Element         *_suffix;       /* suffix */
        !            15:        }       _uls_;
        !            16: }      Suftree;
        !            17: 
        !            18: /* short hand for various fields in a tree node */
        !            19: #define        LABEL(n)        ((n)->_label)
        !            20: #define LENGTH(n)      ((n)->_length)
        !            21: #define CHILD(n)       ((n)->_child)
        !            22: #define SIBLING(n)     ((n)->_sibling)
        !            23: #define LINK(n)                ((n)->_uls_._link)
        !            24: #define SUFFIX(n)      ((n)->_uls_._suffix)
        !            25: 
        !            26: extern Suftree *bldsuftree();
        !            27: extern long    mtchsuftree();
        !            28: 
        !            29: 
        !            30: /* the following definitions are not to be seen by users */
        !            31: #ifdef _IN_SUF_TREE
        !            32: #ifdef DEBUG
        !            33: #define ASSERT(p)      if(!(p)) abort();
        !            34: #else
        !            35: #define ASSERT(p)
        !            36: #endif /*DEBUG*/
        !            37: 
        !            38: #ifndef NULL
        !            39: #define NULL   (0L)
        !            40: #endif /*NULL*/
        !            41: 
        !            42: #ifndef NIL
        !            43: #define NIL(type)      ((type*)NULL)
        !            44: #endif /*NIL*/
        !            45: 
        !            46: #define ALLOCSIZE      256     /* amount of nodes to allocate each time */
        !            47: #define NEXT(n)                ((n)->_sibling)
        !            48: 
        !            49: #endif /*_IN_SUF_TREE*/

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.