My library
Library for common tasks
linkedList.h
Go to the documentation of this file.
1
7#ifndef SEEN_LINKEDLIST
8#define SEEN_LINKEDLIST
9
10#include "types.h"
11
18
26LinkedList chooseNewLLFromArray(const spec_t spec, const void *arr, unsigned int size);
27
33void printLL(const spec_t spec, const LinkedList list);
34
41void appendToLL(LinkedList list, ...);
42
48void appendToLLFromPtr(LinkedList list, const void *element);
49
57void insertToLL(LinkedList list, unsigned int index, ...);
58
64
71void getFromLL(LinkedList list, unsigned int index, void *dest);
72
80void setLLItem(LinkedList list, unsigned int index, ...);
81
87void removeFromLL(LinkedList list, unsigned int index);
88
94void mergeLL(LinkedList list1, const LinkedList list2);
95
102
109void sliceLL(LinkedList list, unsigned int begin, unsigned int end);
110
121
132
141byte areLLEqual(const LinkedList list1, const LinkedList list2);
142
151byte isInLL(LinkedList list, ...);
152
158unsigned int getLLLength(const LinkedList list);
159
164LinkedList newLLFromCharArray(const char arr[], unsigned int size);
165
170LinkedList newLLFromIntArray(const int arr[], unsigned int size);
171
176LinkedList newLLFromFloatArray(const float arr[], unsigned int size);
177
182LinkedList newLLFromDoubleArray(const double arr[], unsigned int size);
183
188LinkedList newLLFromPtrArray(const void *arr, unsigned int size);
189
197
198// TODO Sorting algorithms, currently available only for ArrayList
199
200#endif
LinkedList newLL(const spec_t spec)
Allocate a new LinkedList of specified type.
void appendToLLFromPtr(LinkedList list, const void *element)
Insert an item at the end of a LinkedList.
int linearSearchLL(LinkedList list,...)
Linear search for LinkedList.
LinkedList chooseNewLLFromArray(const spec_t spec, const void *arr, unsigned int size)
Create a LinkedList from an array.
void insertToLL(LinkedList list, unsigned int index,...)
Insert an element at a specified position of a LinkedList.
void deleteLL(LinkedList list)
Delete a LinkedList.
LinkedList newLLFromIntArray(const int arr[], unsigned int size)
Create a LinkedList from a array of ints.
byte isInLL(LinkedList list,...)
Detect if an element is inside a LinkedList.
void mergeLL(LinkedList list1, const LinkedList list2)
Merge two LinkedList.
LinkedList newLLFromDoubleArray(const double arr[], unsigned int size)
Create a LinkedList from an array of doubles.
byte isLLEmpty(LinkedList list)
Check if LinkedList is empty.
void sliceLL(LinkedList list, unsigned int begin, unsigned int end)
Slice a LinkedList.
LinkedList newLLFromFloatArray(const float arr[], unsigned int size)
Create a LinkedList from a array of floats.
void setLLItem(LinkedList list, unsigned int index,...)
Set value of an element of a LinkedList.
void getFromLL(LinkedList list, unsigned int index, void *dest)
Get an item from a LinkedList.
void appendToLL(LinkedList list,...)
Insert an item at the end of a LinkedList.
void * linearSearchLLPtr(LinkedList list,...)
Linear search for LinkedList.
void removeFromLL(LinkedList list, unsigned int index)
Remove an item from a LinkedList.
byte areLLEqual(const LinkedList list1, const LinkedList list2)
Compare two LinkedList.
unsigned int getLLLength(const LinkedList list)
Get the size of a LinkedList.
LinkedList newLLFromLL(const LinkedList list)
Get a copy of a LinkedList.
LinkedList newLLFromCharArray(const char arr[], unsigned int size)
Create a LinkedList from a array of chars.
LinkedList newLLFromPtrArray(const void *arr, unsigned int size)
Create a LinkedList from an array of pointers.
void printLL(const spec_t spec, const LinkedList list)
Print contents from a LinkedList.
LinkedList type
Definition: types.h:69
Collection of useful types.
char * spec_t
Used to specify type of argument passed in functions that require a type specifier.
Definition: types.h:20