Advertisement
Guest User

Untitled

a guest
Jul 16th, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.76 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include "vector.h"
  3.  
  4. vector make_vector() {
  5. vector vec = {
  6. (int*)malloc(BUFSIZE*sizeof(int)),
  7. BUFSIZE,
  8. 0
  9. };
  10. return vec;
  11. }
  12.  
  13. void reallocate(vector* vec) {
  14. int* new_buf = (int*)malloc(2*vec->bufsize*sizeof(int));
  15. for (int i = 0; i < vec->bufsize; i++)
  16. new_buf[i] = vec->buffer[i];
  17. vec->bufsize *= 2;
  18. free(vec->buffer);
  19. vec->buffer = new_buf;
  20. }
  21.  
  22. void push(vector* vec, int el) {
  23. vec->buffer[vec->ptr++] = el;
  24. if (vec->ptr == vec->bufsize)
  25. reallocate(vec);
  26. }
  27.  
  28. int pop(vector* vec) {
  29. return vec->buffer[--vec->ptr];
  30. }
  31.  
  32. int size(vector* vec) {
  33. return vec->ptr;
  34. }
  35.  
  36. int peek(vector* vec) {
  37. return vec->buffer[vec->ptr-1];
  38. }
  39.  
  40. int empty(vector* vec) {
  41. return size(vec) == 0;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement