File: clb_objtrees.h

package info (click to toggle)
eprover 2.6%2Bds-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 21,288 kB
  • sloc: ansic: 331,111; csh: 12,026; python: 10,178; awk: 5,825; makefile: 461; sh: 389
file content (76 lines) | stat: -rw-r--r-- 2,793 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*-----------------------------------------------------------------------

File  : clb_objtrees.h

Author: Stephan Schulz

Contents

  Data structures for the efficient management of objects represented
  by pointers. This inherits the ptree structure, but uses comparison
  on objects (by a user-provided comparison function) instead of pointer
  comparisons.

Copyright 1998-2011 by the author.
  This code is released under the GNU General Public Licence and
  the GNU Lesser General Public License.
  See the file COPYING in the main E directory for details..
  Run "eprover -h" for contact information.

Changes

<1> Mon Feb 15 14:10:06 MET 1999
    Borrowed from clb_ptrees.[ch]

-----------------------------------------------------------------------*/

#ifndef CLB_OBJTREES

#define CLB_OBJTREES

#include <clb_ptrees.h>

/*---------------------------------------------------------------------*/
/*                    Data type declarations                           */
/*---------------------------------------------------------------------*/

typedef void (*ObjDelFun)(void *junk);

typedef PTree_p PObjTree_p;


/*---------------------------------------------------------------------*/
/*                Exported Functions and Variables                     */
/*---------------------------------------------------------------------*/

PObjTree_p PTreeObjInsert(PObjTree_p *root, PObjTree_p newnode,
                          ComparisonFunctionType cmpfun);
void*      PTreeObjStore(PObjTree_p *root, void* key,
                         ComparisonFunctionType cmpfun);
PObjTree_p PTreeObjFind(PObjTree_p *root, void* key,
                        ComparisonFunctionType cmpfun);
void*      PTreeObjFindObj(PObjTree_p *root, void* key,
                           ComparisonFunctionType cmpfun);
PObjTree_p PTreeObjFindBinary(PObjTree_p root, void* key,
                              ComparisonFunctionType cmpfun);
PObjTree_p PTreeObjExtractEntry(PObjTree_p *root, void* key,
                                ComparisonFunctionType cmpfun);
void*      PTreeObjExtractObject(PObjTree_p *root, void* key,
                                 ComparisonFunctionType cmpfun);
void*      PTreeObjExtractRootObject(PObjTree_p *root,
                                     ComparisonFunctionType cmpfun);
void       PTreeObjMerge(PObjTree_p *root, PObjTree_p add,
                         ComparisonFunctionType cmpfun);

void       PObjTreeFree(PObjTree_p root, ObjDelFun del_fun);

long       PObjTreeNodes(PObjTree_p root);

void       DummyObjDelFun(void* Junk);


#endif

/*---------------------------------------------------------------------*/
/*                        End of File                                  */
/*---------------------------------------------------------------------*/