source: trunk/third/glib2/glib/gtree.h @ 18159

Revision 18159, 3.6 KB checked in by ghudson, 22 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r18158, which included commits to RCS files with non-trunk default branches.
Line 
1/* GLIB - Library of useful routines for C programming
2 * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 * Boston, MA 02111-1307, USA.
18 */
19
20/*
21 * Modified by the GLib Team and others 1997-2000.  See the AUTHORS
22 * file for a list of people on the GLib Team.  See the ChangeLog
23 * files for a list of changes.  These files are distributed with
24 * GLib at ftp://ftp.gtk.org/pub/gtk/.
25 */
26
27#ifndef __G_TREE_H__
28#define __G_TREE_H__
29
30#include <glib/gnode.h>
31
32G_BEGIN_DECLS
33
34typedef struct _GTree  GTree;
35
36typedef gboolean (*GTraverseFunc) (gpointer  key,
37                                   gpointer  value,
38                                   gpointer  data);
39
40/* Balanced binary trees
41 */
42GTree*   g_tree_new             (GCompareFunc      key_compare_func);
43GTree*   g_tree_new_with_data   (GCompareDataFunc  key_compare_func,
44                                 gpointer          key_compare_data);
45GTree*   g_tree_new_full        (GCompareDataFunc  key_compare_func,
46                                 gpointer          key_compare_data,
47                                 GDestroyNotify    key_destroy_func,
48                                 GDestroyNotify    value_destroy_func);
49void     g_tree_destroy         (GTree            *tree);
50void     g_tree_insert          (GTree            *tree,
51                                 gpointer          key,
52                                 gpointer          value);
53void     g_tree_replace         (GTree            *tree,
54                                 gpointer          key,
55                                 gpointer          value);
56void     g_tree_remove          (GTree            *tree,
57                                 gconstpointer     key);
58void     g_tree_steal           (GTree            *tree,
59                                 gconstpointer     key);
60gpointer g_tree_lookup          (GTree            *tree,
61                                 gconstpointer     key);
62gboolean g_tree_lookup_extended (GTree            *tree,
63                                 gconstpointer     lookup_key,
64                                 gpointer         *orig_key,
65                                 gpointer         *value);
66void     g_tree_foreach         (GTree            *tree,
67                                 GTraverseFunc     func,
68                                 gpointer          user_data);
69
70#ifndef G_DISABLE_DEPRECATED
71void     g_tree_traverse        (GTree            *tree,
72                                 GTraverseFunc     traverse_func,
73                                 GTraverseType     traverse_type,
74                                 gpointer          user_data);
75#endif /* G_DISABLE_DEPRECATED */
76
77gpointer g_tree_search          (GTree            *tree,
78                                 GCompareFunc      search_func,
79                                 gconstpointer     user_data);
80gint     g_tree_height          (GTree            *tree);
81gint     g_tree_nnodes          (GTree            *tree);
82
83
84
85G_END_DECLS
86
87#endif /* __G_TREE_H__ */
88
Note: See TracBrowser for help on using the repository browser.