Code:[#include <stdio.h> #include <stdlib.h> struct node_t { int data; struct node_t* next; }; struct node_t* node_init(int data) { struct node_t* res=malloc(sizeof(struct node_t));\ res->data=data; res->next=0; return res; } void nod_free(struct node_t* node){ free(node); } struct stack_t { struct node_t* top; }; struct stack_t* stack_init() { struct stack_t* res=malloc(sizeof(struct stack_t)); res->top=0; return res; } int stack_is_empty(struct stack_t* st) { return st->top==0; } void stack_push(struct stack_t* st,int data) { struct node_t* n=node_init(data); n->next=st->top; st->top=n; int main() { struct stack_t* stack_init(); printf("stack is empty?=%d\n", stack_is_empty(st)); stack_push(st,10); stack_push(st,20); printf("stack is empty?=%d\n", stack_is_empty(st)); return 0; }