All pastes #567109 Raw Edit

plutonas

public text v1 · immutable
·published 2007-06-14 19:44 UTC
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);
     
}