codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <stdlib.h> #include <stdio.h> typedef struct { int size; int *stack_array; }stack; void newStack(stack *a) { a->size = 0; a->stack_array = malloc(sizeof(int) * 1); } void push(stack *a, int x) { int *new_array = malloc(sizeof(int) * a->size); int i; for(i=0; i < a->size; i++) { new_array[i] = a->stack_array[i]; } new_array[i] = x; a->stack_array = new_array; a->size += 1; } int pop(stack *a) { if(a->size <= 0) { printf("CALL POP() WITH FILLED STACK"); exit(1); } int *new_array = malloc(sizeof(int) * (a->size)-1); int i; for(i=0; i < a->size-1; i++) { new_array[i] = a->stack_array[i]; } int popped = a->stack_array[i]; a->stack_array = new_array; a->size -= 1; return popped; } void printStack(stack *a) { int i; printf("{"); for(i=0; i<a->size-1; i++) { printf("%d, ", (a->stack_array)[i]); } printf("%d}\n", (a->stack_array)[i]); } int main (void) { stack a; newStack(&a); push(&a, 6); push(&a, 12); push(&a, 13); printStack(&a); printf("Popped: %d\n", pop(&a)); printStack(&a); return 0; }
Private
[
?
]
Run code
Submit