rendered paste body#include <stdlib.h>#include <stdio.h>typedef char *stack_type;typedef struct stack_node stack_node;typedef struct stack stack;struct stack_node{ stack_type value; stack_node *prev; }; struct stack{ stack_node *last;};stack *stack_init(){ stack *stack = calloc(1, sizeof(stack)); stack->last = NULL; return stack;}void stack_push(stack *stack, stack_type value){ stack_node *node = calloc(1, sizeof(stack_node)); node->value = value; node->prev = stack->last; stack->last = node;};stack_type stack_pop(stack *stack){ stack_node *node = stack->last; // mums reiks sito adreso, kai valysim adresa if (node == NULL) return NULL; // stekas tuscias stack_type value = node->value; stack->last = stack->last->prev; // ismetame paskutini elementa, paskutiniu elementu tampa pries paskutinis free(node); // isvalome atminti return value;};int main(void){ stack *stekas = stack_init(); // testuojam stack_push(stekas, "1"); stack_push(stekas, "2"); stack_push(stekas, "3"); stack_push(stekas, "4"); printf("%s \n", stack_pop(stekas)); printf("%s \n", stack_pop(stekas)); printf("%s \n", stack_pop(stekas)); // dabar turetu buti likes vienas elementas stack_push(stekas, "5"); stack_push(stekas, "6"); printf("%s \n", stack_pop(stekas)); printf("%s \n", stack_pop(stekas)); printf("%s \n", stack_pop(stekas)); // stekas jau tuscias printf("%s \n", stack_pop(stekas)); // turetu nuluzti, jei viskas veikia ;]] return 0;}