My library
Library for common tasks
stack.h
Go to the documentation of this file.
1
7#ifndef SEEN_STACK
8#define SEEN_STACK
9
10#include "types.h"
11
17Stack newStack(const spec_t spec);
18
25void push(Stack stack, ...);
26
32void printStack(const spec_t spec, const Stack stack);
33
39void pop(Stack stack, void *dest);
40
46
53byte isStackEmpty(Stack stack);
54
59void deleteStack(Stack stack);
60
66void peekStack(Stack stack, void *dest);
67
77byte isInStack(Stack stack, ...);
78
86Stack chooseNewStackFromArray(const spec_t spec, const void *arr, unsigned int size);
87
93void pushFromPtr(Stack stack, const void *element);
94
100unsigned int getStackLength(const Stack stack);
101
106Stack newStackFromCharArray(const char arr[], unsigned int size);
107
112Stack newStackFromIntArray(const int arr[], unsigned int size);
113
118Stack newStackFromFloatArray(const float arr[], unsigned int size);
119
124Stack newStackFromDoubleArray(const double arr[], unsigned int size);
125
130Stack newStackFromPtrArray(const void *arr, unsigned int size);
131
140byte areStacksEqual(const Stack stack1, const Stack stack2);
141
142#endif
Stack newStackFromFloatArray(const float arr[], unsigned int size)
Create a Stack from an array of floats.
byte isInStack(Stack stack,...)
Detect if an item is inside a Stack.
void pushFromPtr(Stack stack, const void *element)
Push an item into a Stack.
Stack newStack(const spec_t spec)
Allocate a new Stack of specified type.
byte areStacksEqual(const Stack stack1, const Stack stack2)
Compare two Stack.
Stack newStackFromCharArray(const char arr[], unsigned int size)
Create a Stack from an array of chars.
byte isStackEmpty(Stack stack)
Check if Stack is empty.
Stack newStackFromPtrArray(const void *arr, unsigned int size)
Create a Stack from an array of pointers.
Stack newStackFromIntArray(const int arr[], unsigned int size)
Create a Stack from an array of integers.
void pop(Stack stack, void *dest)
Pop an item from a Stack.
Stack newStackFromDoubleArray(const double arr[], unsigned int size)
Create a Stack from an array of doubles.
void deleteHeadFromStack(Stack stack)
Delete current Stack head.
void deleteStack(Stack stack)
Delete a Stack.
unsigned int getStackLength(const Stack stack)
Get the size of a Stack.
void peekStack(Stack stack, void *dest)
Get the item at the head of a Stack without popping it.
Stack chooseNewStackFromArray(const spec_t spec, const void *arr, unsigned int size)
Create a Stack from an array.
void push(Stack stack,...)
Push an item into a Stack.
void printStack(const spec_t spec, const Stack stack)
Print contents from a Stack.
Stack type
Definition: types.h:95
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