typedef struct AVLTreeNode {
int key; //key of this item
int value; //value (int) of this item
int height; //height of the subtree rooted at this node
struct AVLTreeNode *parent; //pointer to parent
struct AVLTreeNode *left; //pointer to left child
struct AVLTreeNode *right; //pointer to right child
} AVLTreeNode;
//data type for AVL trees
typedef struct AVLTree{
int size; // count of items in avl tree
AVLTreeNode *root; // root
} AVLTree;
// create a new AVLTreeNode
AVLTreeNode *newAVLTreeNode(int k, int v )
{
AVLTreeNode *new;
new = malloc(sizeof(AVLTreeNode));
assert(new != NULL);
new->key = k;
new->value = v;
new->height = 0; // height of this new node is set to 0
new->left = NULL; // this node has no child
new->right = NULL;
new->parent = NULL; // no parent
return new;
}
// create a new empty avl tree
AVLTree *newAVLTree()
{
AVLTree *T;
T = malloc(sizeof (AVLTree));
assert (T != NULL);
T->size = 0;
T->root = NULL;
return T;
}
int InsertNode(AVLTree *T, int k, int v)
{
}
Как получить доступ к переменным AVLTreeNode с помощью указателя AVLTree * T в функции InsertNode? В функции вставки мы должны реализовать следующее: Если элемент (k, v) существует в дереве, эта функция просто возвращает 0 без добавления нового элемента (k, v) в дерево. В противном случае он вставляет новый элемент (k, v) в дерево AVL T, увеличивает размер дерева на единицу и возвращает 1. Может ли кто-нибудь помочь мне с этим?