summaryrefslogtreecommitdiff
path: root/algorithms/list.h
diff options
context:
space:
mode:
authorPatrick Simianer <p@simianer.de>2014-06-15 03:24:33 +0200
committerPatrick Simianer <p@simianer.de>2014-06-15 03:24:33 +0200
commitcf3a29feb5887344b6633ead1b4b6d5657a15a4b (patch)
treef1149508f7305a48dba0226699dfafdd68d81969 /algorithms/list.h
parent5ddc763ab9953eebdaf78af4eb72288d7955b310 (diff)
old stuff: algorithms
Diffstat (limited to 'algorithms/list.h')
-rw-r--r--algorithms/list.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/algorithms/list.h b/algorithms/list.h
new file mode 100644
index 0000000..d3c8b12
--- /dev/null
+++ b/algorithms/list.h
@@ -0,0 +1,31 @@
+typedef struct Node_s {
+ struct Node_s *next;
+ char *cont;
+} Node;
+
+typedef struct List_s {
+ Node *first;
+ Node *last;
+} List;
+
+List *list_new(void);
+int list_append(List *l, char *item);
+int list_len(List *l);
+void list_free(List *l);
+char *list_get_at(List *l, int index);
+int list_delete_at(List *l, int index);
+int list_insert_before(List *l, char *item, int index);
+void list_sort(List *l);
+int list_quicksort(List *l);
+List *list_split(char *str, char *splitstr);
+char *list_join(List *l, char *joiner);
+
+typedef struct Iterator_s {
+ List *list;
+ Node *current;
+} Iterator;
+
+Iterator *list_iterator_new(List *l);
+void list_iterator_free(Iterator *i);
+char *list_iterator_next(Iterator *it);
+