code upload from https://sourceforge.net/projects/libredblack/
diff --git a/example.c b/example.c
new file mode 100644
index 0000000..a9abbcc
--- /dev/null
+++ b/example.c
@@ -0,0 +1,62 @@
+#include <redblack.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+
+/*
+ * This script demonstrates the basic sorting capabilities.
+ * 12 random numbers are entered into the tree and then printed
+ * out in order
+ */
+
+void *xmalloc(unsigned n)
+{
+	void *p;
+	p = malloc(n);
+	if(p) return p;
+	fprintf(stderr, "insufficient memory\n");
+	exit(1);
+}
+
+int compare(const void *pa, const void *pb, const void *config)
+{
+	if(*(int *)pa < *(int *)pb) return -1;
+	if(*(int *)pa > *(int *)pb) return 1;
+	return 0;
+}
+
+int main()
+{
+	int i, *ptr;
+	const void *val;
+	struct rbtree *rb;
+
+	srand(getpid());
+
+	if ((rb=rbinit(compare, NULL))==NULL)
+	{
+		fprintf(stderr, "insufficient memory\n");
+		exit(1);
+	}
+
+	for (i = 0; i < 12; i++)
+	{
+		ptr = (int *)xmalloc(sizeof(int));
+		*ptr = rand()&0xff;
+		val = rbsearch((void *)ptr, rb);
+		if(val == NULL)
+		{
+			fprintf(stderr, "insufficient memory\n");
+			exit(1);
+		}
+	}
+
+	for(val=rblookup(RB_LUFIRST, NULL, rb); val!=NULL; val=rblookup(RB_LUNEXT, val, rb))
+	{
+		printf("%6d\n", *(int *)val);
+	}
+
+	rbdestroy(rb);
+	
+	return 0;
+}