libsent/src/util/aptree.c

パトリシア検索木を用いた名前検索:データ型がポインタの場合 [詳細]

#include <sent/stddefs.h>
#include <sent/ptree.h>

aptree.cのインクルード依存関係図

ソースコードを見る。

関数

static APATNODE * new_node ()
static int testbit_local (int bitplace)
static void * aptree_search_data_r (APATNODE *node)
void * aptree_search_data (char *str, APATNODE *node)
APATNODE * aptree_make_root_node (void *data)
static void aptree_add_entry_at (char *str, int bitloc, void *data, APATNODE **parentlink)
void aptree_add_entry (char *str, void *data, char *matchstr, APATNODE **rootnode)
static void aptree_remove_entry_r (APATNODE *now, APATNODE *up, APATNODE *up2)
void aptree_remove_entry (char *str, APATNODE **rootnode)
void aptree_traverse_and_do (APATNODE *node, void(*callback)(void *))
void free_aptree (APATNODE *node)

変数

static char * tmp_str
 Local work area: current string we are searching for
static int maxbitplace
 Local work area: Maximum bit length of tmp_str
static APATNODE * tmproot
 Work area to hold current root node for removing entry


説明

パトリシア検索木を用いた名前検索:データ型がポインタの場合

作者:
Akinobu LEE
日付:
Thu Feb 17 15:21:53 2005
Revision
1.4

aptree.c で定義されています。


関数

static APATNODE* new_node (  )  [static]

Allocate a new node.

戻り値:
pointer to the new node.

aptree.c の 34 行で定義されています。

参照元 aptree_add_entry_at()・aptree_make_root_node()・make_ptree()・ptree_add_entry_at()・ptree_make_root_node().

static int testbit_local ( int  bitplace  )  [static]

Local bit test function for search.

引数:
bitplace [in] bit place to test.
戻り値:
the content of tested bit in tmp_str, either 0 or 1.

aptree.c の 57 行で定義されています。

参照元 aptree_remove_entry_r()・aptree_search_data_r()・ptree_search_data_r().

static void* aptree_search_data_r ( APATNODE *  node  )  [static]

Recursive function to search the data in the tree

引数:
node [in] current node.
戻り値:
pointer to the found data

aptree.c の 81 行で定義されています。

参照元 aptree_search_data().

void* aptree_search_data ( char *  str,
APATNODE *  node 
)

Search for the data whose key string matches the given string.

引数:
str [in] search key string
node [in] root node of index tree
戻り値:
the exactly found data pointer, or the nearest one.

aptree.c の 103 行で定義されています。

参照元 add_to_error()・cdset_lookup()・codebook_add()・codebook_lookup()・dens_add()・dens_lookup()・hmm_add_physical_to_logical()・hmm_add_pseudo_phones_sub()・htk_hmmdata_add()・htk_hmmdata_lookup_logical()・htk_hmmdata_lookup_physical()・lcdset_lookup_with_category()・make_hmm_basephone_list()・mark_word_edge()・new_str2phseq()・rdhmmlist()・regist_cdset()・remove_cdset()・state_add()・state_lookup()・trans_add()・trans_lookup()・var_add()・var_lookup().

APATNODE* aptree_make_root_node ( void *  data  ) 

Make a root node of a index tree.

引数:
data [in] the first data
戻り値:
the newly allocated root node.

aptree.c の 125 行で定義されています。

参照元 add_to_error()・aptree_add_entry()・codebook_add()・dens_add()・hmm_add_physical_to_logical()・hmm_add_pseudo_phones_sub()・htk_hmmdata_add()・make_hmm_basephone_list()・rdhmmlist()・regist_cdset()・state_add()・trans_add()・var_add().

static void aptree_add_entry_at ( char *  str,
int  bitloc,
void *  data,
APATNODE **  parentlink 
) [static]

Insert a new node to the existing index tree.

引数:
str [in] new key string
bitloc [in] bit branch to which this node will be added
data [in] new data pointer
parentlink [i/o] the parent node to which this node will be added

aptree.c の 143 行で定義されています。

参照元 aptree_add_entry().

void aptree_add_entry ( char *  str,
void *  data,
char *  matchstr,
APATNODE **  rootnode 
)

Insert a new node to the index tree.

引数:
str [in] new key string
data [in] new data pointer
matchstr [in] the most matching data already exist in the index tree, as obtained by aptree_search_data()
rootnode [i/o] pointer to root index node

aptree.c の 183 行で定義されています。

参照元 add_to_error()・codebook_add()・dens_add()・hmm_add_physical_to_logical()・hmm_add_pseudo_phones_sub()・htk_hmmdata_add()・make_hmm_basephone_list()・rdhmmlist()・regist_cdset()・state_add()・trans_add()・var_add().

static void aptree_remove_entry_r ( APATNODE *  now,
APATNODE *  up,
APATNODE *  up2 
) [static]

Recursive sunction to find and remove an entry.

引数:
now [in] current node
up [in] parent node
up2 [in] parent parent node

aptree.c の 208 行で定義されています。

参照元 aptree_remove_entry().

void aptree_remove_entry ( char *  str,
APATNODE **  rootnode 
)

Remove a node from the index tree.

引数:
str [in] existing key string (must exist in the index tree)
rootnode [i/o] pointer to root index node

aptree.c の 254 行で定義されています。

参照元 remove_cdset().

void aptree_traverse_and_do ( APATNODE *  node,
void(*)(void *)  callback 
)

Recursive function to traverse index tree and execute the callback for all the existing data.

引数:
node [in] current node
callback [in] callback function

aptree.c の 276 行で定義されています。

参照元 aptree_traverse_and_do()・count_all_phone()・free_cdset()・list_error()・print_all_basephone_detail()・print_all_basephone_name()・put_all_cdinfo()・test_interword_triphone()・triphone_callback_left()・wt_tmix().

void free_aptree ( APATNODE *  node  ) 

Free all the sub nodes from specified node.

引数:
node [in] current node.

aptree.c の 296 行で定義されています。

参照元 free_aptree()・free_cdset()・hmminfo_free().


Julianに対してTue Dec 26 12:58:02 2006に生成されました。  doxygen 1.5.0