Использование двусвязного списка - 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.