All submissions

Circular Buffer Insert

Code

#include <stdio.h>

typedef struct
{
    int buffer[100];
    int head;
    int tail;
    int count;
    int capacity;
} CircularBuffer;

void insert_circular(CircularBuffer *cb, int value)
{
    // Your logic using only pointer access
    if (1)
    {
        cb->buffer[cb->count] = value;
        if (cb->count < cb->capacity){
            ++cb->count;
        }
        
    }
}

int main()
{
    int n, k;
    scanf("%d %d", &n, &k);

    CircularBuffer cb = {.head = 0, .tail = 0, .count = 0, .capacity = n};

    for (int i = 0; i < k; i++)
    {
        int val;
        scanf("%d", &val);
        insert_circular(&cb, val);
    }

    for (int i = 0; i < cb.count; i++)
    {
        printf("%d", cb.buffer[i]);
        if (i < cb.count - 1)
        {
            printf(" ");
        }
    }

    return 0;
}

Solving Approach

 

 

 

Loading...

Input

5 5 10 20 30 40 50

Expected Output

10 20 30 40 50