MPSolve
3.2.2
Toggle main menu visibility
Loading...
Searching...
No Matches
list.h
Go to the documentation of this file.
1
/*
2
* This file is part of MPSolve 3.2.2
3
*
4
* Copyright (C) 2001-2020, Dipartimento di Matematica "L. Tonelli", Pisa.
5
* License: http://www.gnu.org/licenses/gpl.html GPL version 3 or higher
6
*
7
* Authors:
8
* Leonardo Robol <leonardo.robol@unipi.it>
9
*/
10
19
20
#ifndef MPS_LIST_H_
21
#define MPS_LIST_H_
22
23
MPS_BEGIN_DECLS
24
25
struct
mps_list_element
{
31
void
*
value
;
32
39
struct
mps_list_element
*
next
;
40
47
struct
mps_list_element
*
previous
;
48
};
49
50
struct
mps_list
{
54
mps_list_element
*
first
;
55
59
mps_list_element
*
last
;
60
64
int
size
;
65
};
66
67
mps_list_element
* mps_list_element_new (
void
* value);
68
void
mps_list_element_free (
mps_list_element
* el);
69
mps_list_element
* mps_list_element_next (
mps_list_element
* el);
70
mps_list_element
* mps_list_element_previous (
mps_list_element
* el);
71
void
* mps_list_element_value (
mps_list_element
* el);
72
73
mps_list
*
mps_list_new
(
void
);
74
void
mps_list_free
(
mps_list
* list);
75
int
mps_list_size
(
mps_list
* list);
76
void
mps_list_append (
mps_list
* list,
mps_list_element
* el);
77
mps_list_element
* mps_list_first (
mps_list
* list);
78
mps_list_element
* mps_list_last (
mps_list
* list);
79
84
#define MPS_LIST_FOREACH(type, local_var, list) \
85
for (type *__mps_local_iterator = (type*)mps_list_first (list), \
86
*local_var = (type*)mps_list_element_value ((mps_list_element*)__mps_local_iterator); \
87
__mps_local_iterator != NULL; \
88
__mps_local_iterator = (type*)mps_list_element_next ((mps_list_element*)__mps_local_iterator), \
89
local_var = (type*)mps_list_element_value ((mps_list_element*)__mps_local_iterator))
90
91
MPS_END_DECLS
92
93
#endif
/* MPS_LIST_H_ */
94
mps_list_free
void mps_list_free(mps_list *list)
Free a list and all the elements inside it.
Definition
list.c:31
mps_list_new
mps_list * mps_list_new(void)
Create a new empty list.
Definition
list.c:17
mps_list_size
int mps_list_size(mps_list *list)
Return the number of elements in a list.
Definition
list.c:47
mps_list_element
Definition
list.h:25
mps_list_element::value
void * value
The value pointed by this list element. Note that holding this pointer in the first field of the stru...
Definition
list.h:31
mps_list_element::previous
struct mps_list_element * previous
The previous element in the list.
Definition
list.h:47
mps_list_element::next
struct mps_list_element * next
The next element in the list.
Definition
list.h:39
mps_list
Definition
list.h:50
mps_list::first
mps_list_element * first
A pointer to the first element of the list.
Definition
list.h:54
mps_list::size
int size
The number of element of the list.
Definition
list.h:64
mps_list::last
mps_list_element * last
A pointer to the last element of the list.
Definition
list.h:59
include
mps
private
list.h
Generated on
for MPSolve by
1.17.0