Mescal
Loading...
Searching...
No Matches
type_dequeue_gen.h
Go to the documentation of this file.
1
6
7#ifndef DEQUEUE_GEN_H_
8#define DEQUEUE_GEN_H_
9
10 /* ____ _ */
11 /* | _ \ ___ __ _ _ _ ___ _ _ ___ ___ _ __ _ ___ _ __ ___ _ __(_) ___ */
12 /* | | | |/ _ \/ _` | | | |/ _ \ | | |/ _ \/ __(_) / _` |/ _ \ '_ \ / _ \ '__| |/ __| */
13 /* | |_| | __/ (_| | |_| | __/ |_| | __/\__ \_ | (_| | __/ | | | __/ | | | (__ */
14 /* |____/ \___|\__, |\__,_|\___|\__,_|\___||___(_)_ \__, |\___|_| |_|\___|_| |_|\___| */
15 /* (_)_ __ ___ _ |_|| | ___ _ __ ___ ___ _ __ | ||___/_| |_(_) ___ _ __ */
16 /* | | '_ ` _ \| '_ \| |/ _ \ '_ ` _ \ / _ \ '_ \| __/ _` | __| |/ _ \| '_ \ */
17 /* | | | | | | | |_) | | __/ | | | | | __/ | | | || (_| | |_| | (_) | | | | */
18 /* |_|_| |_| |_| .__/|_|\___|_| |_| |_|\___|_| |_|\__\__,_|\__|_|\___/|_| |_| */
19 /* |_| */
20
21#include <stdbool.h>
22#include "type_basic.h"
23
24/**********************/
25/* Définition du type */
26/**********************/
27
32typedef struct {
33 void** array;
35 uint left;
36 uint right;
37 bool empty;
39
40
41
42/**************/
43/* Primitives */
44/**************/
45
54
60);
61
70);
71
80);
81
87);
88
93void lefins_dequeue_gen(void*,
95);
96
101void rigins_dequeue_gen(void*,
103);
104
116 uint
117);
118
130 uint
131);
132
133
142);
143
152);
153
154
155
156#endif
Type used to represent a generic dequeue.
Definition type_dequeue_gen.h:32
bool empty
Boolean indicating whether the dequeue is empty.
Definition type_dequeue_gen.h:37
void ** array
Array of values.
Definition type_dequeue_gen.h:33
uint right
Index following the rightmost value in the dequeue.
Definition type_dequeue_gen.h:36
uint size_array
Size of the array of values.
Definition type_dequeue_gen.h:34
uint left
Index of the leftmost value in the dequeue.
Definition type_dequeue_gen.h:35
Basic types.
bool isempty_dequeue_gen(dequeue_gen *)
Tests whether a dequeue is empty.
Definition type_dequeue_gen.c:105
void * lefpull_dequeue_gen(dequeue_gen *)
Removes the leftmost value of a dequeue.
Definition type_dequeue_gen.c:202
void makeempty_dequeue_gen(dequeue_gen *)
Empties a dequeue.
Definition type_dequeue_gen.c:111
uint size_dequeue_gen(dequeue_gen *)
Computes the size of a dequeue.
Definition type_dequeue_gen.c:119
void lefins_dequeue_gen(void *, dequeue_gen *)
Inserts a new value on the left of a dequeue.
Definition type_dequeue_gen.c:165
dequeue_gen * create_dequeue_gen(void)
Creation of an empty dequeue.
Definition type_dequeue_gen.c:81
void rigins_dequeue_gen(void *, dequeue_gen *)
Inserts a new value on the right of a dequeue.
Definition type_dequeue_gen.c:183
void * rigread_dequeue_gen(dequeue_gen *, uint)
Read a value inside a dequeue without removing it (right-left version).
Definition type_dequeue_gen.c:145
void * rigpull_dequeue_gen(dequeue_gen *)
Removes the rightmost value of a dequeue.
Definition type_dequeue_gen.c:224
void * lefread_dequeue_gen(dequeue_gen *, uint)
Read a value inside a dequeue without removing it (left-right version).
Definition type_dequeue_gen.c:136
void delete_dequeue_gen(dequeue_gen *)
Release of a dequeue.
Definition type_dequeue_gen.c:94