rendered paste body#include<stdio.h>
#include<sys/tree.h>
struct mydata {
RB_ENTRY(mydata) linkage;
int payload;
};
static int mydata_cmp(struct mydata *e1, struct mydata *e2) {
return e2->payload - e1->payload;
}
int main(){
RB_HEAD(mydata_entries, mydata) head = RB_INITIALIZER(&head);
RB_PROTOTYPE(mydata_entries, mydata, linkage, mydata_cmp);
RB_GENERATE(mydata_entries, mydata, linkage, mydata_cmp);
struct mydata *data;
RB_INSERT(mydata_entries, head, data);
struct mydata find;
find.payload = 42;
data = RB_FIND(mydata_entries, head, &find);
RB_FOREACH(data, mydata_entries, head)
printf("%d\n", data->payload);
}