00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef __G_TREE_H__
00028 #define __G_TREE_H__
00029
00030 #include <gnode.h>
00031
00032 G_BEGIN_DECLS
00033
00034 typedef struct _GTree GTree;
00035
00036 typedef gint (*GTraverseFunc) (gpointer key,
00037 gpointer value,
00038 gpointer data);
00039
00040
00041
00042 GTree* g_tree_new (GCompareFunc key_compare_func);
00043 GTree* g_tree_new_with_data (GCompareFuncData key_compare_func,
00044 gpointer user_data);
00045 void g_tree_destroy (GTree *tree);
00046 void g_tree_insert (GTree *tree,
00047 gpointer key,
00048 gpointer value);
00049 void g_tree_remove (GTree *tree,
00050 gconstpointer key);
00051 gpointer g_tree_lookup (GTree *tree,
00052 gconstpointer key);
00053 void g_tree_traverse (GTree *tree,
00054 GTraverseFunc traverse_func,
00055 GTraverseType traverse_type,
00056 gpointer data);
00057 gpointer g_tree_search (GTree *tree,
00058 GCompareFunc search_func,
00059 gconstpointer data);
00060 gint g_tree_height (GTree *tree);
00061 gint g_tree_nnodes (GTree *tree);
00062
00063
00064
00065 G_END_DECLS
00066
00067 #endif
00068