31 lines
731 B
C
31 lines
731 B
C
|
#ifndef ULIST_H_
|
||
|
#define ULIST_H_
|
||
|
|
||
|
typedef struct Node {
|
||
|
void* data;
|
||
|
struct Node* prev;
|
||
|
struct Node* next;
|
||
|
} Node;
|
||
|
|
||
|
typedef struct Ulist {
|
||
|
Node* head;
|
||
|
Node* tail;
|
||
|
int size;
|
||
|
} Ulist;
|
||
|
|
||
|
Ulist* ulist_create();
|
||
|
void ulist_destroy(Ulist* list);
|
||
|
void ulist_push_front(Ulist* list, void* data);
|
||
|
void ulist_push_back(Ulist* list, void* data);
|
||
|
void ulist_remove(Ulist *list, Node *node);
|
||
|
void ulist_remove_front(Ulist* list);
|
||
|
void ulist_splice(Ulist* list, int n);
|
||
|
void ulist_remove_back(Ulist* list);
|
||
|
int ulist_search(Ulist* list, void* data);
|
||
|
void* ulist_get_front(Ulist* list);
|
||
|
void* ulist_get_back(Ulist* list);
|
||
|
int ulist_size(Ulist* list);
|
||
|
void ulist_print(Ulist* list);
|
||
|
void ulist_test();
|
||
|
|
||
|
#endif /* ULIST_H_ */
|