VMS Help  —  RTL Routines, LIB$  LIB$INSERT_TREE
    The Insert Entry in a Balanced Binary Tree routine inserts a node
    in a balanced binary tree.

    Format

      LIB$INSERT_TREE  treehead ,symbol ,flags ,user-compare-routine

                       ,user-allocation-procedure ,new-node

                       [,user-data]

1  –  Returns

    OpenVMS usage:cond_value
    type:         longword (signed)
    access:       write only
    mechanism:    by value

2  –  Arguments

 treehead

    OpenVMS usage:address
    type:         address
    access:       modify
    mechanism:    by reference

    Tree head for the binary tree. The treehead argument is the
    address of a longword that is this tree head. The initial value
    of treehead is 0.

 symbol

    OpenVMS usage:user_arg
    type:         longword (unsigned)
    access:       unspecified
    mechanism:    unspecified

    Key to be inserted.

 flags

    OpenVMS usage:mask_longword
    type:         longword (unsigned)
    access:       read only
    mechanism:    by reference

    Control flags. The flags argument is the address of the control
    flags. Currently only bit 0 is used.

    Bit  Action if Set    Action if Clear

    0    Duplicate        The address of the existing duplicate entry
         entries are      is returned to the new-node argument.
         inserted.

 user-compare-routine

    OpenVMS usage:procedure
    type:         procedure value
    access:       function call (before return)
    mechanism:    by value

    User-supplied compare routine that LIB$INSERT_TREE calls to
    compare a symbol with a node. The user-compare-routine argument
    is required; LIB$INSERT_TREE calls the compare routine for every
    node except the first node in the tree. The value returned by the
    compare routine indicates the relationship between the symbol key
    and the node.

 user-allocation-procedure

    OpenVMS usage:procedure
    type:         procedure value
    access:       function call (before return)
    mechanism:    by value

    User-supplied allocate routine that LIB$INSERT_TREE calls to
    allocate virtual memory for a node. The user-allocation-procedure
    argument is required; LIB$INSERT_TREE always calls the allocate
    routine.

 new-node

    OpenVMS usage:address
    type:         longword (unsigned)
    access:       write only
    mechanism:    by reference

    Location where the new key is inserted. The new-node argument is
    the address of an unsigned longword that is the address of the
    new node.

 user-data

    OpenVMS usage:user_arg
    type:         unspecified
    access:       unspecified
    mechanism:    by value

    User data that LIB$INSERT_TREE passes to the compare and allocate
    routines. The user-data argument is optional.
Close Help