| 12 | } |
| 13 | |
| 14 | std::vector<var> expression::findLeaves(){ |
| 15 | std::vector<var> leaves; |
| 16 | std::queue<var> q; |
| 17 | q.push(root); |
| 18 | |
| 19 | while(!q.empty()){ |
| 20 | var v = q.front(); |
| 21 | if(v.getChildren().empty()){ |
| 22 | leaves.emplace_back(v); |
| 23 | } |
| 24 | else{ |
| 25 | std::vector<var> children = v.getChildren(); |
| 26 | for(const var& v : children) |
| 27 | q.push(v); |
| 28 | } |
| 29 | q.pop(); |
| 30 | } |
| 31 | std::vector<var> ans; |
| 32 | std::copy(leaves.begin(), leaves.end(), std::back_inserter(ans)); |
| 33 | return ans; |
| 34 | } |
| 35 | |
| 36 | std::vector<var> expression::findVariables() { |
| 37 | std::vector<var> leaves; |
no test coverage detected