Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include "vector.h"
- vector make_vector() {
- vector vec = {
- (int*)malloc(BUFSIZE*sizeof(int)),
- BUFSIZE,
- 0
- };
- return vec;
- }
- void reallocate(vector* vec) {
- int* new_buf = (int*)malloc(2*vec->bufsize*sizeof(int));
- for (int i = 0; i < vec->bufsize; i++)
- new_buf[i] = vec->buffer[i];
- vec->bufsize *= 2;
- free(vec->buffer);
- vec->buffer = new_buf;
- }
- void push(vector* vec, int el) {
- vec->buffer[vec->ptr++] = el;
- if (vec->ptr == vec->bufsize)
- reallocate(vec);
- }
- int pop(vector* vec) {
- return vec->buffer[--vec->ptr];
- }
- int size(vector* vec) {
- return vec->ptr;
- }
- int peek(vector* vec) {
- return vec->buffer[vec->ptr-1];
- }
- int empty(vector* vec) {
- return size(vec) == 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement