Implementation if a double ended queue data structure for generic pointers.
More...
|
| typedef int(* | cmp_fun )(const void *elem, const void *key) |
| | The type of the pointer compare function. More...
|
| |
| typedef struct pdeq | pdeq |
| | The pointer double ended queue (list). More...
|
| |
|
| pdeq * | new_pdeq (void) |
| | Creates a new double ended pointer list. More...
|
| |
| void | del_pdeq (pdeq *dq) |
| | Delete a double ended pointer list. More...
|
| |
| size_t | pdeq_len (pdeq const *dq) |
| | Returns the length of a double ended pointer list. More...
|
| |
| int | pdeq_empty (pdeq const *dq) |
| | Checks if a list is empty. More...
|
| |
| int | pdeq_contains (pdeq const *dq, const void *x) |
| | Returns non-zero if a double ended pointer list contains a pointer x. More...
|
| |
| void * | pdeq_search (pdeq const *qp, cmp_fun cmp, const void *key) |
| | Search a key in a double ended pointer list, the search is controlled by a compare function. More...
|
| |
| void ** | pdeq_copyl (const pdeq *qp, const void **dst) |
| | Convert the double ended pointer list into a linear array beginning from left, the first element in the linear array will be the left one. More...
|
| |
| void ** | pdeq_copyr (const pdeq *qp, const void **dst) |
| | Convert the double ended pointer list into a linear array beginning from right, the first element in the linear array will be the right one. More...
|
| |
| pdeq * | pdeq_putl (pdeq *dq, const void *x) |
| | Add a pointer to the left side of a double ended pointer list. More...
|
| |
| pdeq * | pdeq_putr (pdeq *dq, const void *x) |
| | Add a pointer to the right side of a double ended pointer list. More...
|
| |
| void * | pdeq_getl (pdeq *dq) |
| | Retrieve (and remove) a pointer from the left site of a double ended pointer list. More...
|
| |
| void * | pdeq_getr (pdeq *dq) |
| | Retrieve (and remove) a pointer from the right site of a double ended pointer list. More...
|
| |
Implementation if a double ended queue data structure for generic pointers.
| typedef int(* cmp_fun)(const void *elem, const void *key) |
The type of the pointer compare function.
- Parameters
-
| elem | The list element. |
| key | The user supplied key. |
- Returns
- 0 if the element matches the key, non-zero else.
Definition at line 33 of file pdeq.h.
The pointer double ended queue (list).
Definition at line 38 of file pdeq.h.
| void del_pdeq |
( |
pdeq * |
dq | ) |
|
Delete a double ended pointer list.
- Parameters
-
| dq | The list to be deleted. |
Creates a new double ended pointer list.
- Returns
- A new list.
| int pdeq_contains |
( |
pdeq const * |
dq, |
|
|
const void * |
x |
|
) |
| |
Returns non-zero if a double ended pointer list contains a pointer x.
- Parameters
-
| dq | The list. |
| x | The pointer to be searched for. |
| void** pdeq_copyl |
( |
const pdeq * |
qp, |
|
|
const void ** |
dst |
|
) |
| |
Convert the double ended pointer list into a linear array beginning from left, the first element in the linear array will be the left one.
- Parameters
-
| qp | The list. |
| dst | A pointer to a pointer array with must be at least pdeq_len(dq) * sizeof(void *) |
- Returns
- dst
| void** pdeq_copyr |
( |
const pdeq * |
qp, |
|
|
const void ** |
dst |
|
) |
| |
Convert the double ended pointer list into a linear array beginning from right, the first element in the linear array will be the right one.
- Parameters
-
| qp | The list. |
| dst | A pointer to a pointer array with must be at least pdeq_len(dq) * sizeof(void *) |
- Returns
- dst
| int pdeq_empty |
( |
pdeq const * |
dq | ) |
|
Checks if a list is empty.
- Parameters
-
- Returns
- non-zero if the list is empty.
| void* pdeq_getl |
( |
pdeq * |
dq | ) |
|
Retrieve (and remove) a pointer from the left site of a double ended pointer list.
- Parameters
-
- Returns
- The pointer element.
| void* pdeq_getr |
( |
pdeq * |
dq | ) |
|
Retrieve (and remove) a pointer from the right site of a double ended pointer list.
- Parameters
-
- Returns
- The pointer element.
| size_t pdeq_len |
( |
pdeq const * |
dq | ) |
|
Returns the length of a double ended pointer list.
- Parameters
-
| pdeq* pdeq_putl |
( |
pdeq * |
dq, |
|
|
const void * |
x |
|
) |
| |
Add a pointer to the left side of a double ended pointer list.
- Parameters
-
| dq | The list to add a pointer to. |
| x | The pointer element to be added |
- Returns
- The list.
| pdeq* pdeq_putr |
( |
pdeq * |
dq, |
|
|
const void * |
x |
|
) |
| |
Add a pointer to the right side of a double ended pointer list.
- Parameters
-
| dq | The list to add a pointer to. |
| x | The pointer element to be added |
- Returns
- The list.
| void* pdeq_search |
( |
pdeq const * |
qp, |
|
|
cmp_fun |
cmp, |
|
|
const void * |
key |
|
) |
| |
Search a key in a double ended pointer list, the search is controlled by a compare function.
An element is found, if the compare function returns 0. The search is started from the left site of the list.
- Parameters
-
| qp | The list. |
| cmp | The compare function. |
| key | The search key. |
- Returns
- The address of the element entry if the key was found, NULL else.