1
0
mirror of https://github.com/theoludwig/programming-challenges.git synced 2025-12-11 00:21:24 +01:00

feat(solutions): add reverse-polish-notation/c/function

This commit is contained in:
Divlo
2021-10-12 22:48:23 +02:00
parent 5f7ba3b5ae
commit cc8bb07a96
21 changed files with 181 additions and 13 deletions

View File

@@ -0,0 +1,40 @@
#include "stack.h"
#include <stdio.h>
#include <stdlib.h>
struct Stack *stack_initialization() {
struct Stack *stack = malloc(sizeof(*stack));
if (stack == NULL) {
exit(EXIT_FAILURE);
}
stack->first = NULL;
stack->length = 0;
return stack;
}
void stack_push(struct Stack *stack, void *data) {
struct Node *node_new = malloc(sizeof(*node_new));
if (stack == NULL || data == NULL) {
exit(EXIT_FAILURE);
}
node_new->data = data;
node_new->next = stack->first;
stack->first = node_new;
stack->length = stack->length + 1;
}
void *stack_pop(struct Stack *stack) {
if (stack == NULL) {
exit(EXIT_FAILURE);
}
struct Node *node = stack->first;
void *data = NULL;
if (node != NULL) {
stack->first = node->next;
data = node->data;
free(node);
}
stack->length = stack->length - 1;
return data;
}