AVL Data Types - GNU libavl 2.0.3
Author: Ben Pfaff

5.2 Data Types |

We need to define data types for AVL trees like we did for BSTs. AVL tree nodes contain all the fields that a BST node does, plus a field recording its balance factor:

    146. <AVL node structure 146> =
    /* An AVL tree node. */
    struct avl_node
      {
        struct avl_node *avl_link[2];  /* Subtrees. */
        void *avl_data;                /* Pointer to data. */
        signed char avl_balance;       /* Balance factor. */
      };

This code is included in 143.

We're using avl_ as the prefix for all AVL-related identifiers.

The other data structures for AVL trees are the same as for BSTs.