Example #1
0
bin_tree<char>* tree_usage::generate_tree(char* preorder, char* inorder, int nLen)
{
	bin_tree<char>* pRet = NULL;
	bin_tree_node<char>* pRoot = 
		generate_node(preorder, inorder, nLen);
	if(pRoot)
	{
		pRet = new bin_tree<char>(pRoot);
	}
	return pRet;
};
int main(int argc,char *argv[])
{
    int N=atoi(argv[1]),i;
    link_t head,x,temp,t,u;

    head=generate_node(0);
    head->next=NULL;

    srand((unsigned)time(NULL));

    for(x=head,i=1; i<=N; i++) {
        temp=generate_node(rand()%100);
        insertNext(x,temp);
        x=temp;
    }
    print_list(head);

    head=free_nodes(head);
    print_list(head);

    return(0);
}
Example #3
0
bin_tree_node<char>* tree_usage::generate_node(char* preorder, char* inorder, int nLen)
{
	bin_tree_node<char>* pNodeRet = NULL;
	if(!preorder || !inorder || nLen<=0)
		return pNodeRet;

	int nRootIndex = find(inorder, preorder[0], nLen);
	if(-1 == nRootIndex) //can't find this node, that means input got problem
		return pNodeRet;

	pNodeRet = new bin_tree_node<char>(preorder[0]);
	pNodeRet->set_lchild(
		generate_node(
						preorder+1, 
						inorder, 
						nRootIndex));
	pNodeRet->set_rchild(
		generate_node(	preorder+1+nRootIndex, 
						inorder+1+nRootIndex,
						nLen-nRootIndex-1));

	return pNodeRet;
};
Example #4
0
void NField::train(const std::vector<cv::Mat_<float> >& img,
                   const cv::Mat_<uchar>& mask, const int max_depth) {

  std::vector<Pixel> pixels;
  for (int y = 5; y < img[0].rows - 5; ++y) {
    for (int x = 5; x < img[0].cols - 5; ++x) {
      Pixel p = {x, y, mask(y, x) == 0 ? 0 : 1};
      pixels.push_back(p);
    }
  }

  Node root = generate_node(img, mask, pixels);
  this->tree_.push_back(root);

  rec_generate_node(img, mask, 0, max_depth-1, pixels);


}