MCPcopy Create free account
hub / github.com/OriginQ/QPanda-2 / findLeaves

Method findLeaves

Core/Variational/expression.cpp:14–34  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

12}
13
14std::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
36std::vector<var> expression::findVariables() {
37 std::vector<var> leaves;

Callers 1

evalFunction · 0.80

Calls 8

frontMethod · 0.80
getChildrenMethod · 0.80
pushMethod · 0.45
emptyMethod · 0.45
emplace_backMethod · 0.45
popMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected