Ejemplo n.º 1
0
//------------------------------------------------------------------------------
node * TreeToList( node * root ){
    if( root == nullptr ){
        return nullptr;
    }

    auto llist = TreeToList( root->left );
    auto rlist = TreeToList( root->right );

    root->left = root;
    root->right = root;

    return Append( Append( llist, root ), rlist );
}
Ejemplo n.º 2
0
//------------------------------------------------------------------------------
int main(){
    auto list = CreateList( std::vector<int>( {1,2,3,4,5} ) );

    std::cout << PrintList( list ) << std::endl;
    std::cout << PrintBackList( list ) << std::endl;

    auto listA = CreateList( std::vector<int>( {1,2,3,} ) );
    auto listB = CreateList( std::vector<int>( {4,5} ) );

    auto ab = Append( listA, listB );

    std::cout << PrintList( ab ) << std::endl;

    auto tree = CreateTree( std::vector<int>( {4,2,1,3,5} ) );

    std::cout << PrintTree( tree ) << std::endl;

    auto treelist = TreeToList( tree );

    std::cout << PrintList( treelist ) << std::endl;

    TestRandomTree();

    return EXIT_SUCCESS;
}
Ejemplo n.º 3
0
// interacting with R
// [[Rcpp::export]]
Rcpp::List make_sgftree(std::string sgf, bool bynode = true)
{
  Tree<std::string> t;
  if (bynode) {
    t = MakeSgfNodeTree(sgf);
  } else {
    t = MakeSgfBranchTree(sgf);
  }

  Rcpp::List out = TreeToList(t);
  return out;
}
Ejemplo n.º 4
0
//------------------------------------------------------------------------------
void TestRandomTree(){
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> dis(1, 100);

    std::vector<int> values;

    for( auto i = 0 ; i < 100 ; ++i ){
        values.emplace_back( dis(gen) );
    }

    auto tree = CreateTree( values );

    std::cout << PrintTree( tree ) << std::endl;

    auto treelist = TreeToList( tree );

    std::cout << PrintList( treelist ) << std::endl;
}