Annotation of libwww/Library/src/HTBTree.html, revision 1.1

1.1     ! timbl       1: <PRE>
        !             2: /*             Balanced Binary Tree for sorting things         HTBTree.h
        !             3: **             =======================================
        !             4: **
        !             5: **  Tree createion, trversal and freeing.  User-supplied
        !             6: **  comparison routine.
        !             7: */
        !             8: 
        !             9: 
        !            10: typedef struct _HTBTree_element {
        !            11:     void                       *object;        /* User object */
        !            12:     struct _HTBTree_element    *up;
        !            13:     struct _HTBTree_element    *left;
        !            14:     int                                left_depth;
        !            15:     struct _HTBTree_element    *right;
        !            16:     int                                right_depth;
        !            17: } HTBTElement;
        !            18: 
        !            19: typedef (int *HTComparer) PARAMS((void * a, void * b));
        !            20: 
        !            21: typedef struct _HTBTree_top {
        !            22:     HTComparer                 compare;
        !            23:     struct _HTBTree_element    *top;   
        !            24: } HTBTree;
        !            25: 
        !            26: 
        !            27: /*     Create a binary tree given its discrimination routine
        !            28: **     -----------------------------------------------------
        !            29: */
        !            30: 
        !            31: extern HTBTree * HTBTree_new PARAMS((HTComparer comp));
        !            32: 
        !            33: 
        !            34: /*     Free storage
        !            35: **     ------------
        !            36: */
        !            37: extern void HTBTree_free PARAMS((HTBTree* tree));
        !            38: 
        !            39: 
        !            40: /*     Add an object to a binary tree
        !            41: **     ------------------------------
        !            42: */
        !            43: 
        !            44: extern void HTBTree_add PARAMS((HTBTree* tree, void * object));
        !            45: 
        !            46: 
        !            47: /*     Find user object for element
        !            48: **     ---------------------------
        !            49: */
        !            50: 
        !            51: #define HTBTree_object(element)  ((element)->#62object)
        !            52: 
        !            53: 
        !            54: /*     Find next element in depth-first order
        !            55: **     -------------------------------------
        !            56: **
        !            57: ** On entry,
        !            58: **     ele             if NULL, start with leftmost element.
        !            59: **                     if != 0 give next object to the right.
        !            60: **
        !            61: ** returns             Pointer to element ot NULL if none left.
        !            62: **
        !            63: */
        !            64: 
        !            65: extern HTBTElement * HTBTree_next PARAMS((HTBTree* tree, HTBTElement * ele));
        !            66: 
        !            67: 
        !            68: </PRE>

Webmaster