Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

ptree.h

Go to the documentation of this file.
00001 
00022 /*
00023  * Copyright (c) 1991-2006 Kawahara Lab., Kyoto University
00024  * Copyright (c) 2000-2005 Shikano Lab., Nara Institute of Science and Technology
00025  * Copyright (c) 2005-2006 Julius project team, Nagoya Institute of Technology, Nagoya Institute of Technology
00026  * All rights reserved
00027  */
00028 
00029 #ifndef __PATRICIA_TREE_H__
00030 #define __PATRICIA_TREE_H__
00031 
00033 typedef struct _apatnode {
00041   union {
00042     void        *data;          
00043     int         thres_bit;      
00044   } value;
00045   struct _apatnode *left0;      
00046   struct _apatnode *right1;     
00047 } APATNODE;
00048 
00050 typedef struct _patnode {
00058   union {
00059     int         data;           
00060     int         thres_bit;      
00061   } value;
00062   struct _patnode *left0;       
00063   struct _patnode *right1;      
00064 } PATNODE;
00065 
00066 
00067 int testbit(char *str, int bitplace);
00068 int where_the_bit_differ(char *str1, char *str2);
00069 PATNODE *make_ptree(char **words, int *data, int wordsnum, int bitplace);
00070 void disp_ptree(PATNODE *node, int level);
00071 int ptree_search_data(char *str, PATNODE *rootnode);
00072 PATNODE *ptree_make_root_node(int data);
00073 void ptree_add_entry(char *str, int data, char *matchstr, PATNODE **rootnode);
00074 void free_ptree(PATNODE *rootnode);
00075 
00076 void *aptree_search_data(char *str, APATNODE *rootnode);
00077 APATNODE *aptree_make_root_node(void *data);
00078 void aptree_add_entry(char *str, void *data, char *matchstr, APATNODE **rootnode);
00079 void aptree_remove_entry(char *str, APATNODE **rootnode);
00080 void aptree_traverse_and_do(APATNODE *node, void (*callback)(void *));
00081 void free_aptree(APATNODE *rootnode);
00082 
00083 
00084 
00085 #endif /* __PATRICIA_TREE_H__ */

Generated on Tue Mar 28 16:01:39 2006 for Julius by  doxygen 1.4.2