Lines Matching refs:tree

142 /* Create a tag tree. */
151 jpc_tagtree_t *tree;
160 if (!(tree = jpc_tagtree_alloc())) {
163 tree->numleafsh_ = numleafsh;
164 tree->numleafsv_ = numleafsv;
173 tree->numnodes_ += n;
177 if (!(tree->nodes_ = jas_malloc(tree->numnodes_ * sizeof(jpc_tagtreenode_t)))) {
181 /* Initialize the parent links for all nodes in the tree. */
183 node = tree->nodes_;
184 parentnode = &tree->nodes_[tree->numleafsh_ * tree->numleafsv_];
211 jpc_tagtree_reset(tree);
213 return tree;
216 /* Destroy a tag tree. */
218 void jpc_tagtree_destroy(jpc_tagtree_t *tree)
220 if (tree->nodes_) {
221 jas_free(tree->nodes_);
223 jas_free(tree);
228 jpc_tagtree_t *tree;
230 if (!(tree = jas_malloc(sizeof(jpc_tagtree_t)))) {
233 tree->numleafsh_ = 0;
234 tree->numleafsv_ = 0;
235 tree->numnodes_ = 0;
236 tree->nodes_ = 0;
238 return tree;
245 /* Copy state information from one tag tree to another. */
269 /* Reset all of the state information associated with a tag tree. */
271 void jpc_tagtree_reset(jpc_tagtree_t *tree)
276 n = tree->numnodes_;
277 node = tree->nodes_;
290 void jpc_tagtree_setvalue(jpc_tagtree_t *tree, jpc_tagtreenode_t *leaf, int value)
305 jpc_tagtreenode_t *jpc_tagtree_getleaf(jpc_tagtree_t *tree, int n)
307 return &tree->nodes_[n];
310 /* Invoke the tag tree encoding procedure. */
312 int jpc_tagtree_encode(jpc_tagtree_t *tree, jpc_tagtreenode_t *leaf, int threshold,
323 /* Traverse to the root of the tree, recording the path taken. */
335 the tree. */
367 /* Invoke the tag tree decoding procedure. */
369 int jpc_tagtree_decode(jpc_tagtree_t *tree, jpc_tagtreenode_t *leaf, int threshold,
380 /* Traverse to the root of the tree, recording the path taken. */
419 void jpc_tagtree_dump(jpc_tagtree_t *tree, FILE *out)
424 node = tree->nodes_;
425 n = tree->numnodes_;