Как я могу реализовать хеш-таблицу, которая содержит односвязные списки внутри элементов? - PullRequest
0 голосов
/ 08 апреля 2019

Я пишу свою курсовую работу, темой которой является система тестирования. Это означает, что пользователь сможет пройти другие наборы тестов и написать свои собственные тесты. Во-первых, мне нужно создать типы данных моей программы.

Я придумываю хэш-таблицу, в которой будут храниться тестовые задания, содержащие тестовую тему и односвязные списки вопросов и ответов.

Вот мои типы данных, но я не знаю, как связать их друг с другом.

#include <string>

/* One test set */
class Testlist {

    struct node {
        string question;
        string answers[4];
        node *next;
    };

public:

    Testlist();
    /* num - marker of the question or one of the answers */
    void Addquestion(string name, int num); 

};

class Test: public Testlist {
    /* maximum number of tests */
    static const int tablesize = 100;

    /* Member of the hash-table */
    struct item {
        string testname; /* Test name */
        Testlist *set; /* Set of questions and answers to them */
        Test *next;
    };

    /* Hash table of tests */
    item *testtable[NHASH];
public:

    Test();
    unsigned int hash(string key);
    void AddItem(string name, int create);

};

Как я могу работать со следующим указателем односвязного списка в этом случае? Пожалуйста, объясните мне, как я могу правильно это реализовать.

...