00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include <mln/util/tree.hh>
00027 #include <mln/util/tree_to_fast.hh>
00028 #include <mln/util/tree_fast.hh>
00029
00030 int main ()
00031 {
00032 using namespace mln;
00033
00034 unsigned elt1 = 1;
00035 unsigned elt2 = 2;
00036 unsigned elt3 = 3;
00037 unsigned elt4 = 4;
00038 unsigned elt5 = 5;
00039 unsigned elt6= 42;
00040
00041 util::tree_node<unsigned> node(elt1);
00042 util::tree_node<unsigned>* node2 = node.add_child(elt2);
00043 node.add_child(elt3);
00044 mln_assertion(node2);
00045 node2->add_child(elt4);
00046 node2->add_child(elt5);
00047 util::tree_node<unsigned>* node3 = node.search(elt4);
00048 mln_assertion(node3);
00049 node3 = node2->search(elt1);
00050 mln_assertion(!node3);
00051 util::tree<unsigned>* tre = new util::tree<unsigned>(&node);
00052 mln_assertion(tre);
00053 tre->add_tree_up(elt6);
00054 mln_assertion (tre->check_consistency());
00055
00056
00057 util::tree_fast<unsigned> tree_fast = util::tree_to_fast(*tre);
00058 mln_assertion(tree_fast.has (elt1));
00059 mln_assertion(tree_fast.has (elt2));
00060 mln_assertion(tree_fast.has (elt3));
00061 mln_assertion(tree_fast.has (elt4));
00062 mln_assertion(tree_fast.has (elt5));
00063 mln_assertion(tree_fast.has (elt6));
00064 mln_assertion(tree_fast.search(elt6) == tree_fast.root_);
00065 }