Initial revision
[cacao.git] / toolbox / tree.h
1 /************************* toolbox/tree.h **************************************
2
3         Copyright (c) 1997 A. Krall, R. Grafl, M. Gschwind, M. Probst
4
5         See file COPYRIGHT for information on usage and disclaimer of warranties
6
7         Verwaltung bin"arer B"aume 
8
9         Authors: Reinhard Grafl      EMAIL: cacao@complang.tuwien.ac.at
10
11         Last Change: 1996/10/03
12
13 *******************************************************************************/
14
15 typedef int (*treeelementcomperator) (void *key, void * element);
16
17
18 typedef struct treenode {
19         struct treenode *left,*right;
20         struct treenode *parent;
21         
22         void *element;
23         } treenode;
24
25 typedef struct {
26         int usedump;
27         treeelementcomperator comperator;       
28
29         treenode *top;
30         treenode *active;
31         } tree;
32
33
34
35 tree *tree_new (treeelementcomperator comperator);
36 tree *tree_dnew (treeelementcomperator comperator);
37 void tree_free (tree *t);
38
39 void tree_add (tree *t, void *element, void *key);
40 void *tree_find (tree *t, void *key);
41
42 void *tree_this (tree *t);
43 void *tree_first (tree *t);
44 void *tree_next (tree *t);
45