VMS Help
RTL Routines, LIB$, LIB$INSERT_TREE
*Conan The Librarian (sorry for the slow response - running on an old VAX)
|
|
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]
OpenVMS usage:cond_value
type: longword (signed)
access: write only
mechanism: by value
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.
[legal]
[privacy]
[GNU]
[policy]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.