1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
=encoding UTF-8
=head1 НАИМЕНОВАНИЕ
BH_Queue - контейнер очереди
=head1 СИНТАКСИС
#include <BH/Queue.h>
cc prog.c -o prog -lbh
=head1 ОПИСАНИЕ
Модуль BH_Queue предоставляет реализацию контейнера очереди, который позволяет
добавлять элементы в конец и извлекать их из начала. Очередь основана на
динамическом массиве, что обеспечивает эффективное использование памяти и
быстрый доступ к элементам.
=head1 API ВЫЗОВЫ
=head2 BH_QueueNew
BH_Queue *BH_QueueNew(void);
Создаёт очередь.
В случае успеха функция возвращает указатель на новый объект BH_Queue,
или NULL в случае ошибки.
=head2 BH_QueueFree
void BH_QueueFree(BH_Queue *queue);
Уничтожает очередь.
=head2 BH_QueueClear
void BH_QueueClear(BH_Queue *queue);
Очищает очередь.
=head2 BH_QueueReserve
int BH_QueueReserve(BH_Queue *queue,
size_t size);
Резервирует место как минимум для I<size> элементов.
Вызов этой функции делает существующие итераторы недействительными.
В случае успеха функция возвращает 0, в случае ошибки - код ошибки.
=head2 BH_QueueInsert
int BH_QueueInsert(BH_Queue *queue,
void *value);
Вставляет элемент I<value>.
Вызов этой функции делает существующие итераторы недействительными.
В случае успеха функция возвращает 0, в случае ошибки - код ошибки.
=head2 BH_QueueRemove
void BH_QueueRemove(BH_Queue *queue);
Удаляет первый элемент из очереди.
Вызов этой функции делает существующие итераторы недействительными.
=head2 BH_QueueFront
int BH_QueueFront(BH_Queue *queue,
void **value);
Возвращает первый элемент очереди.
Параметр I<value> возвращает значение элемента.
В случае успеха функция возвращает 0, в случае ошибки - код ошибки.
=head2 BH_QueueEmpty
int BH_QueueEmpty(BH_Queue *queue);
Проверяет, является ли очередь пустой.
=head2 BH_QueueSize
size_t BH_QueueSize(BH_Queue *queue);
Возвращает количество элементов.
=head2 BH_QueueCapacity
size_t BH_QueueCapacity(BH_Queue *queue);
Возвращает ёмкость.
=head2 BH_QueueIterNext
void *BH_QueueIterNext(BH_Queue *queue, void *iter);
Возвращает итератор на следующий элемент.
Опциональный параметр I<iter> принимает итератор на текущий элемент.
В случае успеха функция возвращает итератор или NULL.
=head2 BH_QueueIterValue
void *BH_QueueIterValue(void *iter);
Возвращает значение элемента, указываемое итератором I<iter>.
=head1 СМ. ТАКЖЕ
L<BH>
|