blob: 97cde1a80fe8779cc6e354cf1a2902e7d072a7a1 (
plain)
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
|
#ifndef DLIST_H
#define DLIST_H
#include <stddef.h>
struct dlist_item
{
int data;
struct dlist_item *next;
struct dlist_item *prev;
};
struct dlist
{
size_t size;
struct dlist_item *head;
struct dlist_item *tail;
};
// Threshold 1
struct dlist *dlist_init(void);
int dlist_push_front(struct dlist *list, int element);
void dlist_print(const struct dlist *list);
int dlist_push_back(struct dlist *list, int element);
size_t dlist_size(const struct dlist *list);
// Threshold 2
int dlist_get(const struct dlist *list, size_t index);
int dlist_insert_at(struct dlist *list, int element, size_t index);
int dlist_find(const struct dlist *list, int element);
int dlist_remove_at(struct dlist *list, size_t index);
void dlist_clear(struct dlist *list);
// Threshold 3
void dlist_map_square(struct dlist *list);
void dlist_reverse(struct dlist *list);
struct dlist *dlist_split_at(struct dlist *list, size_t index);
void dlist_concat(struct dlist *list1, struct dlist *list2);
// Threshold 4
unsigned int dlist_levenshtein(const struct dlist *list1,
const struct dlist *list2);
#endif /* !DLIST_H */
|