2023-06-03 00:37:11 +03:00
..
2022-02-05 00:11:52 +03:00
2023-03-26 23:18:40 +03:00
2022-08-20 18:56:21 +03:00
2023-03-26 23:18:40 +03:00
2023-06-03 00:37:11 +03:00

Generic queue

Overview

  • Queue implementation which grows when you add elements.
  • Add/remove from head/tail is possible, so it can be used as list, stack,
    queue, dequeue etc.
  • It comes with predefined types, check out at the end of sc_queue.h, you can add there (sc_queue_def) if you need more.

Usage

#include "sc_queue.h"

#include <stdio.h>

void example_str(void)
{
	const char *elem;
	struct sc_queue_str queue;

	sc_queue_init(&queue);

	sc_queue_add_last(&queue, "one");
	sc_queue_add_last(&queue, "two");
	sc_queue_add_last(&queue, "three");

	sc_queue_foreach (&queue, elem) {
		printf("elem = [%s] \n", elem);
	}

	sc_queue_term(&queue);
}

void example_int(void)
{
	int elem;
	struct sc_queue_int queue;

	sc_queue_init(&queue);

	sc_queue_add_last(&queue, 2);
	sc_queue_add_last(&queue, 3);
	sc_queue_add_last(&queue, 4);
	sc_queue_add_first(&queue, 1);

	sc_queue_foreach (&queue, elem) {
		printf("elem = [%d] \n", elem);
	}

	elem = sc_queue_del_last(&queue);
	printf("Last element was : [%d] \n", elem);

	elem = sc_queue_del_first(&queue);
	printf("First element was : [%d] \n", elem);

	sc_queue_term(&queue);

}

int main(int argc, char *argv[])
{
	example_str();
	example_int();
	return 0;
}