diff options
author | Aryadev Chavali <aryadev@aryadevchavali.com> | 2021-11-20 22:35:32 +0000 |
---|---|---|
committer | Aryadev Chavali <aryadev@aryadevchavali.com> | 2021-11-20 22:35:32 +0000 |
commit | a495bd9c64fc860fa4bb6a9c80f50049ec62b6d3 (patch) | |
tree | 3e101c27a2b51840191e8d9a939f3c6278bcd733 | |
parent | 73e2e18839abcbb5f48ff903840e9e6069a5d8fb (diff) | |
download | algorithms-a495bd9c64fc860fa4bb6a9c80f50049ec62b6d3.tar.gz algorithms-a495bd9c64fc860fa4bb6a9c80f50049ec62b6d3.tar.bz2 algorithms-a495bd9c64fc860fa4bb6a9c80f50049ec62b6d3.zip |
(list)+list.cpp file
Will have all the singly linked list algorithms I can think of, using
the structure I have defined (template based singly linked list) and
the simple append function I have added that also acts as the main
method of creating an instance.
-rw-r--r-- | list.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/list.cpp b/list.cpp new file mode 100644 index 0000000..8c671a1 --- /dev/null +++ b/list.cpp @@ -0,0 +1,40 @@ +/* list.cpp + * Date: 2021-11-20 + * Author: Aryadev Chavali + */ + +#include <cstdio> +#include <cstdlib> + +template <typename T> +struct List +{ + T value; + struct List<T> *next; +}; + +template <typename T> +struct List<T> *append(struct List<T> *lst, T value) +{ + struct List<T> *node; + if (lst == NULL) + { + node = new List<T>; + node->value = value; + node->next = NULL; + return node; + } + + for (node = lst; node->next != NULL; node = node->next) + continue; + + node->next = new List<T>; + node->next->value = value; + node->next->next = NULL; + return lst; +} + +int main(void) +{ + return 0; +} |