Esempio n. 1
0
void tree2array(struct tnode *p) {
  if(p != NULL) {
    tree2array(p->left);
    if(array_index < MAXNUM)
      word_array[array_index++] = p;
    tree2array(p->right);
  }
}
Esempio n. 2
0
//random trees
void randtree_C(double *a, double *b, int *maxS, double *ansS, double *ansR)
{
	struct bintree *R = rRtree (b[0], maxS[0]);//new struct bintree;
	struct bintree *S =  rStree (a[0], maxS[0]);//new struct bintree;
	//setTree(1.0, S);
	//setTree(1.0, R);
	//struct bintree *S = newtree(1);
	//struct bintree *R = newtree(1);
	//R = rRtree (b[0], maxS[0]);
	//S = rStree (a[0], maxS[0]);
	tree2array(S, ansS, maxS[0], 0);
	tree2array(R, ansR, maxS[0], 0);
	deleteTree(S);
	deleteTree(R);
}
Esempio n. 3
0
//compute the n., r. and v. tree given two vectors (with N rows) of s and h indexes
void allTrees_C(int *s, int *h, int * maxS, int *N, double * nvec, double * rvec, double * vvec)
{
	struct bintree * n = new struct bintree;
	struct bintree * r = new struct bintree;
	struct bintree * v = new struct bintree;
	setTree(1.0, n);
	setTree(1.0, r);
	setTree(1.0, v);
	//struct bintree *n = newtree(1);
	//struct bintree *r = newtree(1);
	//struct bintree *v = newtree(1);
	array2tree(nvec, maxS[0], n);
	array2tree(rvec, maxS[0], r);
	array2tree(vvec, maxS[0], v);
	allTrees(s, h, *maxS, *N, n, r, v);
	tree2array(r, rvec, maxS[0], 0);
	tree2array(n, nvec, maxS[0], 0);
	tree2array(v, vvec, maxS[0], 0);
	deleteTree(n);
	deleteTree(r);
	deleteTree(v);
}
Esempio n. 4
0
int main(int argc, char *argv[]) {
  struct tnode *root = NULL;
  char word[MAXWORD];
  while(getword(word, MAXWORD) != EOF) {
    //printf("%s\n", word);
    if(isalpha(word[0]))
      root = addtree(root, word);
  }
  tree2array(root);
  sort_array();
  print_array();
  return 0;
}
Esempio n. 5
0
// compute the weigths given a tree 
void computeprob_C(double *S, double * R, int *maxS, double *a, double *b, double *ans, int *root)
{
	struct bintree *Stree = new struct bintree;
	struct bintree *Rtree = new struct bintree;
	setTree(1.0, Stree);
	setTree(1.0, Rtree);
///	struct bintree *Stree = newtree(1);
//	struct bintree *Rtree = newtree(1);
//	struct bintree *anstree = newtree(1);
	if(root[0]==0) S[0] = 0;
	array2tree(S, maxS[0], Stree);
	array2tree(R, maxS[0], Rtree);
	struct bintree *anstree = computeprob(Stree, Rtree, a[0], b[0], maxS[0], 1);
	tree2array(anstree, ans, maxS[0], 0);
	deleteTree(Stree);
	deleteTree(Rtree);
	deleteTree(anstree);
}