| | void * rtavl_delete (struct rtavl_table *tree, const void *item) {
/* Stack of nodes. */
struct rtavl_node *pa[RTAVL_MAX_HEIGHT]; /* Nodes. */
unsigned char da[RTAVL_MAX_HEIGHT]; /* rtavl_link[] indexes. */
int k; /* Stack pointer. */
struct rtavl_node *p; /* Traverses tree to find node to delete. */
assert (tree != NULL && item != NULL);
<@xref{\NODE\, , Step 1: Search RTAVL tree for item to delete.>,430}
<@xref{\NODE\, , Step 2: Delete RTAVL node.>,431}
<@xref{\NODE\, , Steps 3 and 4: Update balance factors and rebalance after RTAVL deletion.>,438}
return (void *) item;
}
|