dino/ulist.h
2024-03-07 02:02:03 +03:00

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_ */