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

2.8       frystyk     1: <HTML>
                      2: <HEAD>
                      3: <TITLE>Balanced Binary Tree</TITLE>
2.15    ! frystyk     4: <!-- Changed by: Henrik Frystyk Nielsen, 11-Nov-1995 -->
2.8       frystyk     5: </HEAD>
2.7       timbl       6: <BODY>
2.10      frystyk     7: 
2.8       frystyk     8: <H1>Balanced Binary Tree</H1>
                      9: 
                     10: <PRE>
                     11: /*
2.12      frystyk    12: **     (c) COPYRIGHT MIT 1995.
2.8       frystyk    13: **     Please first read the full copyright statement in the file COPYRIGH.
                     14: */
                     15: </PRE>
                     16: 
                     17: Tree creation, traversal and freeing. User-supplied comparison
                     18: routine.<P>
                     19: 
                     20: This module is implemented by <A HREF="HTBTree.c">HTBTree.c</A>, and
2.15    ! frystyk    21: it is a part of the <A HREF="http://www.w3.org/pub/WWW/Library/"> W3C
        !            22: Reference Library</A>.
2.8       frystyk    23: 
                     24: <PRE>
2.10      frystyk    25: #ifndef HTBTTEE_H
                     26: #define HTBTREE_H
1.1       timbl      27: 
2.15    ! frystyk    28: #include "HTArray.h"
2.10      frystyk    29: </PRE>
1.1       timbl      30: 
2.15    ! frystyk    31: <PRE>
        !            32: typedef struct _HTBTree HTBTree;
1.1       timbl      33: 
2.15    ! frystyk    34: typedef struct _HTBTree_element HTBTElement;
        !            35: </PRE>
1.1       timbl      36: 
2.15    ! frystyk    37: <H2>Create a Binary Tree</H2>
1.1       timbl      38: 
2.15    ! frystyk    39: This function creates a new binary tree and uses the comparison
        !            40: function when building the tree.
1.1       timbl      41: 
2.15    ! frystyk    42: <PRE>
        !            43: extern HTBTree * HTBTree_new (HTComparer * comp);
2.7       timbl      44: </PRE>
1.1       timbl      45: 
2.15    ! frystyk    46: <H2>Free storage of the tree but not of the objects</H2>
1.1       timbl      47: 
2.15    ! frystyk    48: <PRE>
        !            49: extern void HTBTree_free (HTBTree * tree);
2.7       timbl      50: </PRE>
2.6       secret     51: 
2.15    ! frystyk    52: <H2>Free storage of the tree and of the objects</H2>
2.6       secret     53: 
2.15    ! frystyk    54: <PRE>
        !            55: extern void HTBTreeAndObject_free (HTBTree * tree);
2.7       timbl      56: </PRE>
2.6       secret     57: 
2.15    ! frystyk    58: <H2>Add an object to a binary tree</H2>
1.1       timbl      59: 
2.15    ! frystyk    60: <PRE>
        !            61: extern void HTBTree_add (HTBTree* tree, void * object);
2.7       timbl      62: </PRE>
1.1       timbl      63: 
2.15    ! frystyk    64: <H2>Return an Object</H2>
1.1       timbl      65: 
2.15    ! frystyk    66: <PRE>
        !            67: extern void * HTBTree_object (HTBTElement * element);
2.7       timbl      68: </PRE>
1.1       timbl      69: 
2.15    ! frystyk    70: <H2>Find next element in depth-first order</H2>
1.1       timbl      71: 
2.7       timbl      72: <H3>On entry,</H3>
1.1       timbl      73: 
2.15    ! frystyk    74: If <CODE>element</CODE> is NULL then start with leftmost element. if
        !            75: not NULL then give next object to the right. The function returns a
        !            76: pointer to element or NULL if none left.
1.1       timbl      77: 
2.15    ! frystyk    78: <PRE>
        !            79: extern HTBTElement * HTBTree_next (HTBTree * tree, HTBTElement * element);
        !            80: </PRE>
        !            81: 
        !            82: <PRE>
2.10      frystyk    83: #endif
                     84: </PRE>
2.15    ! frystyk    85: 
        !            86: End of declaration of BTree
2.10      frystyk    87: </BODY>
                     88: </HTML>

Webmaster