C Data Structures And Algorithms
General overview:
Implemented Data Structures
Red Black Tree
Initialization
Insertion
Deletion
Searching
Contains
Print
Pre order traversal
In order traversal
Post order traversal
Get Size
Is Empty
Transform to array
Clear
Destroy
AVL Tree
Initialization
Insertion
Deletion
Searching
Contains
Pre order traversal
In order traversal
Post order traversal
Breadth first traversal
Get Size
Is Empty
Transform to array
Clear
Destroy
Binary Tree
Initialization
Insertion
Deletion
Searching
Contains
Pre order traversal
In order traversal
Post order traversal
Get Size
Is Empty
Transform to array
Clear
Destroy
Splay Tree
Initialization
Insertion
Deletion
Searching
Contains
Get Size
Is Empty
Transform to array
Clear
Destroy
Binary Heap
Initialization
Insertion
Deletion
Searching
Contains
Get Size
Is Empty
Transform to array
Clear
Destroy
Trie
Initialization
Add word
Remove Word
Contains Word
Auto completion
Generate suggestions
Print words
Clear
Destroy
Directed Graph
Initialization
Add node
remove node
add edge
remove edge
Contains node
Contains edge
Get size
Is empty
Print
Depth first traversal
Breadth first traversal
Topological sort
Check if node is a part of cycle
Graph Contains Cycles
Clear
Destroy
Undirected Graph
Initialization
Add node
remove node
add edge
remove edge
Contains node
Contains edge
Get edge weight
Get size
Is empty
Print
Shortest distance (Dijkstra's algorithm)
Shortest path (Dijkstra's algorithm)
Minimum spanning graph (Prim's algorithm)
Check if node is a part of cycle
Graph Contains Cycles
Clear
Destroy
Hashmap
Linked list hashmap
Initialization
Insertion
Deletion
Search for value
Search for key
Contains
Transform to value array
Transform to entry array
Get size
Is empty
Clear
Destroy
Hashset
Initialization
Insertion
Deletion
Search
Contains
Transform to array
Get size
Is empty
Clear
Destroy
String
Initialization
Append character
Add character at index
Update character
Remove character
Append char array or string
Change string by another char array or string
Get character index
Get character at index
Is sub string of another char array or string
Convert to char array
Convert to char array between specific range
Is equal to char array or to string
Compare with char array or with string
Get length
Trim, trim start, and trim end
Custom trim, trim start, and trim end
Scan input
Print
Split
Clear
Destroy
Vector
Array list
Initialization
Insertion
Deletion
Contains
Get
Get index and get last index
Transform to array and sub array
Sort
Get length
Is empty
Print
Clear
Destroy
Set
Initialization
Insertion
Deletion
Contains
Get
Get index
Transform to array
Get length
Is empty
Clear
Destroy
Linked list
Doubly linked list
Initialization
Insertion
Deletion
Get
Get index
Get item
Get at index
Get first and last
Contains
Transform to array
Get length
Is empty
Print
Clear
Destroy
Matrix
Initialization
Insertion
Deletion
Get
Get index
Contains
Add row at last and at index
Add column at last and at index
Remove row at index
Remove column at index
Get number of rows
Get number of columns
Get number of items
Is empty
Transform to array
Print
Clear
Destroy
Pair
Initialization
Get first and second
Set first and second
Set first and second without freeing the old elements
Swap elements
Destroy
Stack
Doubly linked list stack
Initialization
Push
Pop
Peek
Contains
Is equal to another stack
Transform to array
Get length
Is empty
Clear
Destroy
Queue
Linked list queue
Stack queue
Priority queue
Priority queue implemnted using binary heap
Initialization
Enqueue
Dequeue
Peek
Get length
Is empty
Transform to array
Clear
Destroy
Deque
Doubly linked list deque
Initialization
Insert front and end
Get front and end
Peek front and end
Get length
Is Empty
Transform to array
Clear
Destroy
Function
Complexity
Comments
reverse array
O (n)
get most frequent value A
O (n ^ 2)
this function will use a resizable array to store the repeated values
get most frequent value H
O (n)
this function will use a hash map to store the repeated values
print array
O (n)
this function will need a helper printing function
resize array
O (n)
array resize and copy
O (n)
this function will allocate a new array with the new length and then it will copy the values in the original array into the new one
array resize and copy of range
O (k) and k is the length of the copying range
this function will allocate a new array with the new length and then it will copy the values between the provided into the new array
array copy
O (n)
this function will allocate a new array then it will copy the values in the original array into the new one
array copy of range
O (k) and k is the length of the copying range
this function will allocate a new array then it will copy the values between the provided range into the new array
fill array
O (n)
fill array in range
O (k) and k is the length of the range
compare arrays
O (n)
compare arrays in range
O (k) and k is the length of the range
array mismatch
O (n)
array mismatch in range
O (k) and k is the length of the range
array anagrams S
O (n log(n))
this function will sort the array first to determine if they are equals
array anagrams H
O (n)
this function will use a hash map the compare the arrays
array remove duplicates A
O (n ^ 3)
this function will use a resizable array to detect the duplicates
array remove duplicates H
O (n ^ 2)
this function will use a hash map to detect the duplicates
array count values
O (n)
is sub array
O (n ^ 2)
array get index
O (n)
array contains
O (n)
array remove at index
O (n)
array sort
O (n log(n))
this function will use quick sort algorithm to sort the array, note that quick sort complexity can be O (n ^ 2)
array get first
O (n)
array get last
O (n)
array get all
O (n)
array binary search
O (log(n))
array is palindrome
O (n)
array is rotation of an array
O (n)
array update element
O (1)
array add
O (n)
array add all
O (n)
array swap two indices
O (1)
Function
Complexity
Comments
is sub string
O (n ^ 2)
reverse words
O (n)
custom trim start
O (n ^ 2)
trim start
O (n ^ 2)
custom trim end
O (n)
trim end
O (n)
custom trim
O (n ^ 2)
trim
O (n ^ 2)
contains
O (n)
remove character
O (n)
is integer
O (n)
is floating point
O (n)
sum characters ASCII
O (n)
hash char array
O (n)
this function actually will return the sum the the characters ASCII
generate char array
O (n)
this function will allocate a new char array then it will copy the original char array into the new one
generate char pointer
O (1)
this function will generate a char pointer to a character
is alphabet C
O (1)
this function will take a character value then it will check if it's an alphabet character
is alphabet
O (1)
this function will take a character pointer then it will check if it's an alphabet character
comparison function P
O (1)
this function will take two character pointers then it will compare there ASCII values
comparison function
O (1)
this function will take two character value then it will compare there ASCII values
split S
O (n)
this function will split the char array into strings vector
split C
O (n)
this function will split the char array into char arrays vector
most repeated character
O (n)
this function will use a hash map
Function
Complexity
Comments
bubble sort
O (n ^ 2)
in best case the complexity could be O ( n )
selection sort
O (n ^ 2)
insertion sort
O (n ^ 2)
in best case the complexity could be O ( n )
merge sort
O (n log(n))
there are two implementations first one with space complexity O ( n ) and worst case time complexity O ( n log(n) ), and the another one with space complexity O ( 1 ) and worst case time complexity O ( n ^ 2 )
quick sort
O (n log(n))
in the worst case the complexity could be O (n ^ 2)
heap sort
O (n log(n))
counting sort A
O (n)
this type of sorting works only on unsigned integers, note this function will use an array to count the values so it will allocate an extra memory
counting sort H
O (n)
this type of sorting works only on unsigned integers, note this function will use a hashmap so it will use less memory that the array implementation
Get number of digits
Transform to char array
Max int
Min int
Compare integers
Compare integers reverse
Compare integers pointers
Compare integers pointers reverse
Generate integer pointer from another integer pointer
Generate integer pointer from an integer value
Integer hash function
Sum two integers
Sum array of integers
Extra
Text File Loader
Initialization
Read file as string or as char array
Read file lines
Read file using a delimiter
Count lines
Read a specific line as a string or a char array
Write a string or a char array
Append a string or a char array at the end of the file
Append a string or a char array at the end of a specific line
Add a string or a char array at a specific line index
Update a specific line using a string or a char array
Remove a specific line
Change file
Clear the text file
Destroy
Input Scanner
You should pass stdin file to the function to scan the input.
Scan String
Scan char array
Scan character
Scan integer
Scan long
Scan long long
Scan short
Scan double
Scan float
The errors codes generated by summing the words ASCII values of the characters and multiply every character value by it's ( index + 1 )
.
The first four error code numbers are the sum of the "DATA_STRUCTURE" characters,
and the rest of the error code is the sum of the error enum.
ex: INVALID_ARG is 4987.
Error
Error code
Message
FAILED_ALLOCATION
-833811484
"The %s allocation in %s failed."
FAILED_REALLOCATION
-833814245
"The %s reallocation in %s failed."
FAILED_COPY
-83385167
"Copying %s in %s failed."
INVALID_ARG
-83384987
"The passed arg %s in %s is invalid."
NULL_POINTER
-83386157
"The %s pointer in %s is NULL."
OUT_OF_RANGE
-83385991
"The passed index is out of the %s range."
EMPTY_DATA_STRUCTURE
-833816740
"The passed %s pointer is empty."
SOMETHING_WENT_WRONG
-833816834
"Can't %s in %s."