-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlist.h
More file actions
93 lines (71 loc) · 1.63 KB
/
list.h
File metadata and controls
93 lines (71 loc) · 1.63 KB
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
#ifndef CDATAFRAME_PEREZ_LENAIN_BENSIFI_LIST_H
#define CDATAFRAME_PEREZ_LENAIN_BENSIFI_LIST_H
#include "column.h"
typedef struct lnode_
{
COLUMN* data;
struct lnode_ *prev;
struct lnode_ *next;
}lnode;
typedef struct dllist_{
lnode *head;
lnode *tail;
}dllist;
/**
* création d'un noeud
*/
lnode *lst_create_lnode(void *dat);
/**
* crée la liste et retourne un pointeur sur cette dernière
*/
dllist *lst_create_list();
/**
* supprimer la liste
*/
void lst_delete_list(dllist * lst);
/**
* Insère pnew au début de la liste lst
*/
void lst_insert_head(dllist * lst, lnode * pnew);
/**
* Insère pnew à la fin de la liste lst
*/
void lst_insert_tail(dllist * lst, lnode * pnew);
/**
* Insère l'élément pnew juste après ptr dans la liste lst
*/
void lst_insert_after(dllist * lst, lnode * pnew, lnode * ptr);
/**
* Supprime le premier élément de la liste
*/
void lst_delete_head(dllist * lst);
/**
* Supprime le dernier élément de la liste
*/
void lst_delete_tail(dllist * lst);
/**
* Supprime le lnode pointé par ptr
*/
void lst_delete_lnode(dllist * lst, lnode * ptr);
/**
* Supprime tous les éléments de la liste lst
*/
void lst_erase(dllist * lst);
/**
* retourne le premier node s'il existe sinon NULL
*/
lnode *get_first_node(dllist * lst);
/**
* retourne le dernier node s'il existe sinon NULL
*/
lnode *get_last_node(dllist * lst);
/**
* retourne le node suivant
*/
lnode *get_next_node(dllist * lst, lnode * lnode);
/**
* retourne le node precedent
*/
void *get_previous_elem(dllist * lst, lnode * lnode);
void *get_elem_index(dllist * lst, int index);
#endif //CDATAFRAME_PEREZ_LENAIN_BENSIFI_LIST_H