-
Notifications
You must be signed in to change notification settings - Fork 0
/
LLC_Liste.h
83 lines (61 loc) · 2.02 KB
/
LLC_Liste.h
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
#ifndef LLC_LISTE_H
#define LLC_LISTE_H
#include <stdio.h>
#include <stdlib.h>
/*-----------------------------.
| LLC Listes |
| _______________ |
| Created By :Khezour Oussama |
'------------------------------*/
typedef struct Elt{
void *info;
struct Elt *svt;
} node ;
typedef node* LLC_liste ;
int LLC_Vide(LLC_liste l);
int LLC_Size(LLC_liste l);
/**
LLC_neGet({l},0) --> return le derinier element
LLC_Get({l}, LLC_size({l})-1) --> return le derinier element
*/
void* LLC_neGet(LLC_liste l,int index);
void* LLC_Get(LLC_liste l,int index);
/**
Cree un Elt a partir un type donnee
parms :
{val} : addresse de valeur a ajouter
{taille} : la taille de l'elt ( sizeof (<monType>) )
returns:
new LLC_liste Object
[remq: Cree un copie de val]
*/
LLC_liste LLC_CrNode(void *val,size_t taille);
/**
ajouter une val a {last}
parms :
{val} : addresse de valeur a ajouter
{taille} : la taille de l'elt ( sizeof (<monType>) )
returns:
le dernier elt ajouter
[
remq: utiliser pour minimaliser la complexite de l'ajout a l'fin par
sauvgarder le dernier elt ajouter dans var(last)
]
*/
LLC_liste LLC_add(LLC_liste last,void* val,size_t taille);
/* last elt de tete lst */
LLC_liste getLast(LLC_liste lst);
void LLC_addLast(LLC_liste *l ,void* val , size_t taille);
void push(LLC_liste* p,void* val,size_t taille);
void* pop(LLC_liste* p);
void LLC_addFirst(LLC_liste *l,void* val, size_t taille);
void LLC_Affiche(LLC_liste t,void (*ptrF)(void *));
void LLC_Affiche2(LLC_liste t,void (*ptrF)(void*),char* Listname);
//return l'adr de 1er occurence d Elt qui verifier le prediact ptrF(fonction->>boolean)
LLC_liste LLC_Recherche(LLC_liste l,void* val,int (*ptrF)(void *,void *));
int LLC_Count(LLC_liste l , void* val ,int (*ptrF)(void *,void *));
void __Swap(LLC_liste *lst1,LLC_liste *lst2);
void LLC_sort(LLC_liste *l ,int (*CmpPtrF)(void*,void*));
//fonction qui faire l affichage au sense inverse
void LLC2Pile_Affiche(LLC_liste t,void (*ptrF)(void *));
#endif