lnktl |
Table of contents
ProcedureLNKTL ( LNK, tail of list ) INTEGER FUNCTION LNKTL ( NODE, POOL ) AbstractReturn the tail node of the list containing a specified node. Required_ReadingNone. KeywordsLIST DeclarationsIMPLICIT NONE INTEGER LBPOOL PARAMETER ( LBPOOL = -5 ) INTEGER NODE INTEGER POOL ( 2, LBPOOL : * ) Brief_I/OVARIABLE I/O DESCRIPTION -------- --- -------------------------------------------------- NODE I Number of a node. POOL I A doubly linked list pool. LBPOOL P Lower bound of pool column indices. The function returns the number of the tail node of the list containing NODE. Detailed_InputNODE is the number of a node in POOL. Normally, NODE will designate an allocated node, but NODE is permitted to be less than or equal to zero. POOL is a doubly linked list pool. Detailed_OutputThe function returns the number of the tail node of the list containing NODE. If NODE is non-positive, the function returns zero. ParametersLBPOOL is the lower bound of the column indices of the POOL array. The columns indexed LBPOOL to 0 are reserved as a control area for the pool. Exceptions1) If the NODE is less than or equal to zero, NODE is not considered to be erroneous. The value 0 is returned. 2) If NODE is greater than the size of the pool, the error SPICE(INVALIDNODE) is signaled. The value 0 is returned. 3) If NODE is not the number of an allocated node, the error SPICE(UNALLOCATEDNODE) is signaled. The value 0 is returned. FilesNone. ParticularsThis routine provides a convenient way to find the tail of a list in a doubly linked list pool. The need to find the tail of a list arises in applications such as buffer management. For example, in a system using a "least recently used" buffer replacement policy, the tail of a list may point to the least recently accessed buffer element. Examples1) If POOL is a doubly linked list pool that contains the list 3 <--> 7 <--> 1 <--> 44 any of function references TAIL = LNKTL ( 3, POOL ) TAIL = LNKTL ( 7, POOL ) TAIL = LNKTL ( 44, POOL ) will assign the value 44 to TAIL. 2) If POOL is a doubly linked list pool that contains the singleton list consisting of the allocated node 44 the function reference TAIL = LNKTL ( 44, POOL ) will assign the value 44 to TAIL. Restrictions1) Linked list pools must be initialized via the routine LNKINI. Failure to initialize a linked list pool, will almost certainly lead to confusing results. Literature_ReferencesNone. Author_and_InstitutionN.J. Bachman (JPL) J. Diaz del Rio (ODC Space) W.L. Taber (JPL) VersionSPICELIB Version 1.1.1, 24-NOV-2021 (JDR) Edited the header to comply with NAIF standard. SPICELIB Version 1.1.0, 09-JAN-1997 (NJB) Corrected module name in one pair of CHKIN/CHKOUT calls. SPICELIB Version 1.0.0, 19-DEC-1995 (NJB) (WLT) |
Fri Dec 31 18:36:31 2021