#include 
gint compare(int m, int n);
gint node_print(int key, int val, gpointer dummy);
int main(void){
  
  GNode* tree;
  int array[]= {13,2,26,215,7864,4,1,87};
  int i,len;
  tree= g_tree_new (compare);
  len= sizeof(array) / sizeof(int);
  for(i= 0; i < len; i++){
    g_tree_insert(tree, array[i], array[i]);
  }
  g_tree_traverse(tree, node_print, G_IN_ORDER, NULL);
  printf("\n");
  
  return 0;
}
/* 比較関数、新しく入れたデータのkeyが第一引数、ノードのkeyが第2引数に入る。
 * 返す値が マイナスだと左の枝へ進んで行く。
 */
gint compare(int m, int n){
  return (gint) (m - n);
}
/* traverse func */
/* g_tree_traverse() で各ノードで呼出される関数。
 * 正の値を返すとtraverseが終了するので注意。*/
gint node_print(int key, int val, gpointer dummy){
  printf("%d ", val);
  return 0;
}