Unclear why
if (self == NULL)in 2 of the 4 functions. Suggest none or all 4.A comment in
stack.hconcerning the meaning of the return value would be useful. Assume user ofStackdoes not have access tostack.c. Not clear is success happens withtrueorfalse.Using
Nodeandnodeis a bit too similar - differentiating only on 1 letter case.Maybe want to add a
stack_empty()query?typedef struct Nodeis not needed instack.h. Suggest moving tostack.cMaybe allow
stack_pop(Stack* self, int* data)wheredataisNULLto pop without saving.