VMS Help  —  RTL Routines, LIB$  LIB$INSERT_TREE_64
    (Alpha and I64 only.) The Insert Entry in a Balanced Binary Tree
    routine inserts a node in a balanced binary tree.

    Format

      LIB$INSERT_TREE_64  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 quadword that is this tree head. The initial value
    of treehead is 0.

 symbol

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

    Key to be inserted.

 flags

    OpenVMS usage:mask_quadword
    type:         quadword (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   Description

    0     If clear, the address of the existing duplicate entry
          is returned to the new-node argument. If set, duplicate
          entries are 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_64 calls to
    compare a symbol with a node. The user-compare-routine argument
    is required; LIB$INSERT_TREE_64 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_64 calls
    to allocate virtual memory for a node. The user-allocation-
    procedure argument is required; LIB$INSERT_TREE_64 always calls
    the allocate routine.

 new-node

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

    Location where the new key is inserted. The new-node argument is
    the address of an unsigned quadword 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_64 passes to the compare and
    allocate routines. The user-data argument is optional.
Close Help