Skip to content

Latest commit

 

History

History

queue

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

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;
}