Что такое "список списков"? - C (СИ)
Формулировка задачи:
ДД!
Задали задачу и необходимо реализовать ее с помощью списка списков. С обычными списками я знаком, а вот что такое список списков?
Спасибо
Решение задачи: «Что такое "список списков"?»
textual
Листинг программы
struct MasterNode
{
struct Node* rootNode; /* root of sub-list */
struct MasterNode* next;
};
Объяснение кода листинга программы
- Структура
MasterNodeсодержит указатель на узел корневого элемента списка и указатель на следующий элемент списка. - Указатель
rootNodeуказывает на корневой узел списка. - Указатель
nextуказывает на следующий элемент в списке. - Структура
Nodeпредставляет собой отдельный узел списка. - Для каждого узла списка создается структура
MasterNode. - Список содержит указатели на структуры
MasterNode. - Элементы списка связаны друг с другом через указатель
next. - Корневой узел списка содержит указатель на первый элемент списка.
- Каждый узел списка содержит указатель на следующий элемент списка.
- Список может быть пустым или содержать один или несколько элементов.
- При добавлении нового элемента в список создается новый узел, и он добавляется в конец списка.
- При удалении элемента из списка удаляется соответствующий узел списка.
- Для доступа к элементам списка используется последовательное перебирание узлов списка.
- Для добавления нового элемента в список используется функция
insert_node. - Для удаления элемента из списка используется функция
delete_node. - Для поиска элемента в списке используется функция
search_node. - Для обхода всех элементов списка используется функция
traverse_list. - Для освобождения памяти, выделенной для списка, используется функция
free_list. - Значения переменных
rootNodeиnextобновляются при добавлении и удалении элементов списка. - Значение переменной
rootNodeможет быть изменено при добавлении нового корневого узла в список.