95 std::size_t numPatterns = patterns.size1();
97 LabelType
const& firstResult = evalPattern(row(patterns,0));
102 for(std::size_t i = 0; i != numPatterns; ++i){
206 int nodeIdLeft = m_tree.size();
207 int nodeIdRight = m_tree.size() + 1;
218 m_tree.push_back(leftChild);
219 m_tree.push_back(rightChild);
222 m_tree[nodeId].leftId = nodeIdLeft;
223 m_tree[nodeId].rightIdOrIndex = nodeIdRight;
224 m_tree[nodeId].attributeIndex = attributeIndex;
225 m_tree[nodeId].attributeValue = attributeValue;
227 return m_tree[nodeId];
251 reordered_tree.reserve(m_tree.size());
253 std::deque<std::size_t > bfs_queue;
254 bfs_queue.push_back(0);
256 std::size_t nodeId = 0;
257 while(!bfs_queue.empty()){
259 bfs_queue.pop_front();
263 reordered_tree.push_back(node);
265 reordered_tree.push_back(node);
266 reordered_tree.back().leftId = nodeId+1;
267 reordered_tree.back().rightIdOrIndex = nodeId+2;
269 bfs_queue.push_back(node.
leftId);
274 m_tree = std::move(reordered_tree);