Использование двусвязного списка - LordCalm/list GitHub Wiki
Для начала нужно подключить "DoublyLinkedList.h".
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "DoublyLinkedList.h"
Далее можно сразу писать функцию main().
Для начала, есть две функции для создания двусвязного списка:
-
CreateList();- возвращает указатель на пустой созданный список; -
ArrayToList(M, size_M);- получает массив и его размер и возвращает те же данные, но уже в качестве списка. Так же, как и первая, вернёт указатель на список.
Далее функции добавления элемента в список:
-
InsertAfter(&L, 1, 1);- получает адрес списка, индекс и элемент, который необходимо вставить. Имеет типvoid.
Если далее написатьInsertAfter(&L, 1, 20);, то в итоге на первом месте будет стоять 20, а затем 1. -
InsertBefore(&L, 1, 100);- получает адрес списка, индекс элемента, перед которым надо вставить новый и сам элемент. Имеет типvoid. После этих действий список будет состоять из трёх элементов: 100, 20, 1.
Функции удаления:
-
Delete(&L, 1);- удаляет элемент с указанным индексом. Имеет типvoid. -
DeleteList(&L);- удаляет список целиком. Имеет типvoid.
Пузырьковая сортировка элементов списка:
-
BubbleSort(&L);- сортирует список по возрастанию. Имеет типvoid.
Печать элементов списка:
-
PrintList(L, printInt);- получает указатель на список и функцию печати. Имеет типvoid.
Функции поиска:
-
FindPtr(L, 1);- получает указатель на список и элемент, который требуется найти. Возвращает указатель на этот элемент. -
FindIndex(L, 100);- получает указатель на список и элемент, который требуется найти. Возвращает индекс этого элемента. В нашем случае вернёт 1.