Write the following c++ While loop in a different way: while(pq_tree.size()>1){
ID: 3718884 • Letter: W
Question
Write the following c++ While loop in a different way:
while(pq_tree.size()>1){
bnode<symbol>* left= pq_tree.top();
pq_tree.pop();
bnode<symbol>* right= pq_tree.top();
pq_tree.pop();
if(left->value.value < right->value.value){
symbol s(left->value.value, left->value.count + right ->value.count);
bnode<symbol>* parentNode = new bnode<symbol>(s,left,right);
pq_tree.push(parentNode);
} else{
symbol s(right->value.value, left->value.count + right ->value.count);
bnode<symbol>* parentNode = new bnode<symbol>(s,left,right);
pq_tree.push(parentNode);
}
}
Explanation / Answer
I wrote same code usin FOR loop.
Please let me know in case of any issue.
for(;pq_tree.size()>1;){
bnode<symbol>* left= pq_tree.top();
pq_tree.pop();
bnode<symbol>* right= pq_tree.top();
pq_tree.pop();
if(left->value.value < right->value.value){
symbol s(left->value.value, left->value.count + right ->value.count);
bnode<symbol>* parentNode = new bnode<symbol>(s,left,right);
pq_tree.push(parentNode);
} else{
symbol s(right->value.value, left->value.count + right ->value.count);
bnode<symbol>* parentNode = new bnode<symbol>(s,left,right);
pq_tree.push(parentNode);
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.