Как пройти многоуровневый связанный список? - PullRequest
0 голосов
/ 09 июня 2019

Я пишу программу на C для сохранения данных о менеджерах и сотрудниках в компании.

Структура представляет собой многоуровневый связанный список.Каждый менеджер может содержать внутренних менеджеров и сотрудников.

Вот структура

typedef struct Node {
    char* name;
    NODE* next;
    NODE* down;
        NODE* parent; 
    int is_manager;
} NODE;

В моей программе я хочу просмотреть структуру, чтобы найти конкретного сотрудника, добавить к ним данные,удалить их и т. д.

функции добавления / удаления просты, но я застрял на том, как проходить и искать в этой структуре.

Заранее благодарю за любую помощь.

1 Ответ

1 голос
/ 09 июня 2019

Расширение на моем примере:

void print_node(NODE *node)
{
    // Tread node as the head of a list, and iterate over that list the "normal" way
    while (node)
    {
        // But also go down the "tree"...
        if (node->down)
        {
            print_node(node->down);
        }

        // Print the name
        printf("%s ", node->name);

        // And go to the next node in the list
        node = node->next;
    }
}

Следуя совету jdweng , понять это было бы не сложно. Нарисуйте все это, используя ручку и бумагу, и следуйте, пока вы «вручную» печатаете это дерево.

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