Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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);

}

}