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 */
/*---------------------------------------------------------------------*/
|