Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include "stack.h"
- int main()
- {
- /* Nodes */
- int dado1 = 7, dado2 = 3, dado3 = 3, dado4 = 1, tmp;
- /* Stack */
- Stack *stack = init();
- push(stack, &dado1);
- tmp = pop(stack);
- push(stack, &dado1);
- push(stack, &dado3);
- tmp = pop(stack);
- push(stack, &dado3);
- push(stack, &dado3);
- push(stack, &dado4);
- push(stack, &dado1);
- tmp = pop(stack);
- echo(stack);
- deInit(stack);
- return 0;
- }
- Stack *init()
- {
- Stack *stack = malloc(sizeof(Stack));
- stack->headNode = NULL;
- stack->size = 0;
- printf("Init Stack \n");
- return stack;
- }
- void push(Stack *stack, int *pData)
- {
- Node *node = malloc(sizeof(Node));
- node->pData = pData;
- node->pNext = stack->headNode;
- stack->headNode = node;
- stack->size += 1;
- }
- int pop(Stack *stack)
- {
- int popNode;
- Node *node = stack->headNode->pNext;
- popNode = *(stack->headNode->pData);
- free(stack->headNode);
- stack->headNode = node;
- stack->size -= 1;
- return popNode;
- }
- void echo(Stack *stack)
- {
- Node *node;
- printf("Head ->" );
- while(NULL != stack->headNode)
- {
- node = stack->headNode;
- stack->headNode = stack->headNode->pNext;
- printf("\t %d\n", *(node->pData));
- }
- }
- int getSize(Stack *stack)
- {
- printf("%d\n", stack->size);
- return stack->size;
- }
- void deInit(Stack *stack)
- {
- Node *node;
- while(NULL != stack->headNode)
- {
- node = stack->headNode;
- stack->headNode = stack->headNode->pNext;
- free(node);
- node = NULL;
- }
- free(stack);
- stack = NULL;
- printf("DeInit Stack\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement