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

Пример использования списка

⚠️ **GitHub.com Fallback** ⚠️