Skip to content

Example - Stack

#include <stdio.h>
#include <shana/stack.h>

// gcc -o example_stack.exe example_stack.c -lshana & color

int main(){

    stack_t stack;

    stack_init(&stack, sizeof(int));

    /*
    int values[] = {10, 20, 30};

    for (int i = 0; i < 3; ++i){
        stack_push(&stack, &values[i]);
    }
    */

    /*
    int tmp = 10;

    stack_push(&stack, &tmp);

    tmp = 20;
    stack_push(&stack, &tmp);

    tmp = 30;
    stack_push(&stack, &tmp);
    */

    stack_push(&stack, &(int){10});

    stack_push(&stack, &(int){20});

    stack_push(&stack, &(int){30});


    while (!stack_is_empty(&stack)){
        printf("Top = %d\n", *(int*)stack_top(&stack));
        stack_pop(&stack);
    }

    stack_free(&stack);


    return 0;
}