Как получить доступ к переменным AVLTreeNode, используя указатель AVLTree * T в функции InsertNode? - PullRequest
0 голосов
/ 28 марта 2020
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. Может ли кто-нибудь помочь мне с этим?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...