#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;
}
0 Comments:
Post a Comment
<< Home