Leptonica
1.82.0
Image processing and image analysis suite
list.h
Go to the documentation of this file.
1
/*====================================================================*
2
- Copyright (C) 2001 Leptonica. All rights reserved.
3
-
4
- Redistribution and use in source and binary forms, with or without
5
- modification, are permitted provided that the following conditions
6
- are met:
7
- 1. Redistributions of source code must retain the above copyright
8
- notice, this list of conditions and the following disclaimer.
9
- 2. Redistributions in binary form must reproduce the above
10
- copyright notice, this list of conditions and the following
11
- disclaimer in the documentation and/or other materials
12
- provided with the distribution.
13
-
14
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
15
- ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
16
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
17
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANY
18
- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22
- OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
23
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
*====================================================================*/
26
27
28
#ifndef LEPTONICA_LIST_H
29
#define LEPTONICA_LIST_H
30
61
struct
DoubleLinkedList
62
{
63
struct
DoubleLinkedList
*prev;
64
struct
DoubleLinkedList
*next;
65
void
*data;
66
};
67
typedef
struct
DoubleLinkedList
DLLIST
;
68
69
71
#define L_BEGIN_LIST_FORWARD(head, element) \
72
{ \
73
DLLIST *_leptvar_nextelem_; \
74
for ((element) = (head); (element); (element) = _leptvar_nextelem_) { \
75
_leptvar_nextelem_ = (element)->next;
76
77
79
#define L_BEGIN_LIST_REVERSE(tail, element) \
80
{ \
81
DLLIST *_leptvar_prevelem_; \
82
for ((element) = (tail); (element); (element) = _leptvar_prevelem_) { \
83
_leptvar_prevelem_ = (element)->prev;
84
85
87
#define L_END_LIST }}
88
89
90
#endif
/* LEPTONICA_LIST_H */
DoubleLinkedList
Definition:
list.h:61
src
list.h
Generated by
1.8.15