Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct StackNode {
- int value;
- struct StackNode* prev;
- } StackNode;
- typedef struct Stack {
- struct StackNode* top;
- } Stack;
- StackNode* NewStackNode(int value)
- {
- /*creating StackNode*/
- StackNode* Node = malloc(sizeof(StackNode));
- Node -> value = value;
- Node -> prev = NULL;
- return Node;
- }
- Stack* NewStack(int value)
- {
- /*creating StackNode*/
- StackNode* Node = NewStackNode(value);
- /*creating stack*/
- Stack* New = malloc(sizeof(Stack));
- New -> top = Node;
- return New;
- }
- void StackPush(Stack* s, int value)
- {
- StackNode* Node = NewStackNode(value);
- Node -> prev = s-> top;
- s -> top = Node;
- }
- int StackPop(Stack* s)
- {
- int output = -1;
- StackNode* freeNode;
- if(s->top){
- freeNode = s -> top;
- output = s->top->value;
- s -> top = s -> top -> prev;
- free(freeNode);
- }
- return output;
- }
- void StackRelease(Stack *s)
- {
- while(s-> top){
- StackPop(s);
- }
- if(s)free(s);
- }
- int main(void)
- {
- Stack* s = NewStack(6);
- int val;
- StackPush(s, 7);
- StackPush(s, 8);
- //StackRelease(s);
- val = StackPop(s);
- printf("%d\n", val);
- val = StackPop(s);
- printf("%d\n", val);
- val = StackPop(s);
- printf("%d\n", val);
- StackRelease(s);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement