Составители:
Рубрика:
В заголовочном файле function.h приведен исходный код всех вышеперечисленных
функций. В результате выполнения программы на экран будут выведены значения:
0 1 2 3 4 5 7
#include <stdio.h>
#include <stdlib.h>
#include "function.h"
struct X
{
int Value;
X *Next;
X *Prev;
};
int main()
{
X *first = FirstElement(0); // Формирование первого элемента списка
X *end = first; //Конец списка на его начале
// Добавление в конец списка четырех элементов 3, 4, 5, 6 и 7:
for (int i = 3; i<8; i++)
AddElement(&end, i);
// Вставка элемента 1 после элемента 0:
InsertElement(first, &end, 0, 1);
// Удаление элемента 6:
if(!RemoveElement (&first, &end, 6))
printf("Don't find Element\n");
// Вставка элемента 2 по сортировке
SortElement(&first,&end, 2);
// Вывод списка на экран
X *element = first;
while (element)
{
printf("%d ",element->Value);
element = element->Next;
}
return 0;
}
2.9.3. Стеки
Операции вставки и извлечения элементов из линейного списка адресные - они ис-
пользуют номер
элемента (индекс). Если ограничить возможности изменения последо-
вательности только ее концами, получим структуры данных, называемые
стеком и оче-
редью. Стек- последовательность элементов, включение элементов в которую и исклю-
чение из которой производится только с одного конца. Начало последовательности на-
зывается дном стека, конец последовательности, в который добавляются элементы и из
которых они исключаются, - вершиной стека. Операция добавления нового элемента
(запись в стек) имеет общепринятое название Push (погрузить), операция исключения -
Pop (звук выстрела). Операции Push и Pop безадресные: для их выполнения никакой до-
полнительной информации о месте размещения элементов не требуется. Таким образом,
стек - это частный случай однонаправленного списка, добавление элементов в который и
67
В заголовочном файле function.h приведен исходный код всех вышеперечисленных функций. В результате выполнения программы на экран будут выведены значения: 0 1 2 3 4 5 7 #include#include #include "function.h" struct X { int Value; X *Next; X *Prev; }; int main() { X *first = FirstElement(0); // Формирование первого элемента списка X *end = first; //Конец списка на его начале // Добавление в конец списка четырех элементов 3, 4, 5, 6 и 7: for (int i = 3; i<8; i++) AddElement(&end, i); // Вставка элемента 1 после элемента 0: InsertElement(first, &end, 0, 1); // Удаление элемента 6: if(!RemoveElement (&first, &end, 6)) printf("Don't find Element\n"); // Вставка элемента 2 по сортировке SortElement(&first,&end, 2); // Вывод списка на экран X *element = first; while (element) { printf("%d ",element->Value); element = element->Next; } return 0; } 2.9.3. Стеки Операции вставки и извлечения элементов из линейного списка адресные - они ис- пользуют номер элемента (индекс). Если ограничить возможности изменения последо- вательности только ее концами, получим структуры данных, называемые стеком и оче- редью. Стек- последовательность элементов, включение элементов в которую и исклю- чение из которой производится только с одного конца. Начало последовательности на- зывается дном стека, конец последовательности, в который добавляются элементы и из которых они исключаются, - вершиной стека. Операция добавления нового элемента (запись в стек) имеет общепринятое название Push (погрузить), операция исключения - Pop (звук выстрела). Операции Push и Pop безадресные: для их выполнения никакой до- полнительной информации о месте размещения элементов не требуется. Таким образом, стек - это частный случай однонаправленного списка, добавление элементов в который и 67
Страницы
- « первая
- ‹ предыдущая
- …
- 65
- 66
- 67
- 68
- 69
- …
- следующая ›
- последняя »
