Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ekzamen_Po_Infe.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
109 Кб
Скачать
☆

11. Связные списки

struct node

{

int val;

node *next;

};

Списки - упорядоченное множество, состоящее из переменного числа элементов, к которым применимы операции включения, исключения.

Длина списка равна числу элементов, содержащихся в списке. Список нулевой длины называется пустым списком.

Список, отражающий отношения соседства между элементами, называется линейным.

Добавление элемента в начало:

void addElementR(struct node ** head, int newData)

{

struct node * newNode;

newNode = (struct node *) malloc(sizeof(struct node));

newNode->data = newData;

newNode->next = NULL;

if (*head == NULL) {

(*head) = newNode;

return;

}

newNode->next = (*head);

(*head) = newNode;

}

Исключение элемента:

int delElementR(struct node** delnode)

{

struct node* tmp;

if (delnode != NULL) {

tmp = *delnode;

*delnode = (*delnode)->next;

free(tmp);

return 1;

}

return 0;

}

Фиктивная голова это голова, указатель на которую имеет значение NULL

Кольцевой список, это список в котором последний элемент имеет указатель на первый элемент списка.

Двусторонняя очередь

Дек (двусвязная очередь)  - особый вид очереди. Последовательный список, в котором как включение, так и исключение элементов может осуществляться с любого из двух концов списка.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]