2016-11-25 9 views
-1

У меня есть программа, которая читает строки из текстового файла, а затем сохраняет их в дереве AVL, мне также нужно удалить узлы и вставить новые из командной строки. Я понимаю, как это сделать, когда узлы имеют ints как ключи, но мои строки.Как искать, вставлять, удалять узлы в деревьях AVL, когда ключ является строкой

Как я должен это решить?

typedef struct Node { 
    int height; 
    int count; 
    char key[10]; 
    struct Node * left; 
    struct Node * right; 
} Node; 

ответ

0

Я понимаю, как это сделать, когда узлы имеют Интс как ключи, но мой являются строками.

То же, вам просто нужно изменить функцию сравнения (сравнения строк вместо целых чисел), что-то вроде:

static int comp_by_key(const void *pa, const void *pb) 
{ 
    const Node *a = pa, *b = pb; 

    return strcmp(a->key, b->key); 
}