Computer Networking: A Top-Down Approach (7th Edition)
Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN: 9780133594140
Author: James Kurose, Keith Ross
Publisher: PEARSON
Bartleby Related Questions Icon

Related questions

Question

Given the C++ code:

// toh.cpp
#include <iostream>
#include <vector>
using namespace std;

int main() {
    vector<int> t[3];
    int n;
    cout << "Enter the number of rings: ";
    cin >> n;
    int from = 0;
    int candidate = 1;
    int to, move = 0;

    if ( n % 2 == 0)
    to = 2;   // (from + to)%mod3, counter clockwise
    else
        to = 1;  // (from + to)%mod3, clockwise

    for ( int i =  n + 1 ; i >= 1; i-- )
        t[0].push_back(i);
      t[1].push_back(n+1);
      t[2].push_back(n+1);


    if ( n % 2  ==  0 )
    {

      while ( t[1].size() < (n+1) ) {

          cout << "move " << ++move << ":" << " Move candidate " << candidate;
          cout << " from tower " << (char) (from + 'A');
          cout << " to tower " << (char)(to + 'A') << endl;

          t[to].push_back(t[from].back());
          t[from].pop_back();
          if (t[(to+2)%3].back() < t[(to+1)%3].back())
              from = (to + 2)%3;
          else
              from = (to + 1)%3;

          if (t[(from)%3].back() < t[(from+2)%3].back())
              to = (from + 2)%3;
          else
              to = (from + 1)%3;
          candidate = t[from].back();
        }
        return 0;

    } else {

      while ( t[1].size() < ( n+1 )   ) {
          cout << "move " << ++move << ":" << " Move candidate " << candidate;
          cout << " from tower " << (char) (from + 'A');
          cout << " to tower " << (char)(to + 'A') << endl;
          t[to].push_back(t[from].back());
          t[from].pop_back();
          if (t[(to+1)%3].back() < t[(to+2)%3].back())
              from = ( to + 1 )%3;
          else
              from = ( to + 2 )%3;
          //cout << "from = " << from << endl;
          if (t[(from)%3].back()  <  t[(from+1)%3].back())
              to = (from + 1)%3;
          else
              to = (from + 2)%3;
          //cout << "to = " << to <<endl;

          candidate = t[from].back();
        }
        return 0;
    }

    return 0;
}

Given the while loop:

      while ( t[1].size() < ( n+1 )   ) {
          cout << "move " << ++move << ":" << " Move candidate " << candidate;
          cout << " from tower " << (char) (from + 'A');
          cout << " to tower " << (char)(to + 'A') << endl;
          t[to].push_back(t[from].back());
          t[from].pop_back();
          if (t[(to+1)%3].back() < t[(to+2)%3].back())
              from = ( to + 1 )%3;
          else
              from = ( to + 2 )%3;
          //cout << "from = " << from << endl;
          if (t[(from)%3].back()  <  t[(from+1)%3].back())
              to = (from + 1)%3;
          else
              to = (from + 2)%3;
          //cout << "to = " << to <<endl;

          candidate = t[from].back();
        }
        return 0;

Question: Explain what each instruction is doing.

Expert Solution
Check Mark
Knowledge Booster
Background pattern image
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
Computer Networking: A Top-Down Approach (7th Edi...
Computer Engineering
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:PEARSON
Text book image
Computer Organization and Design MIPS Edition, Fi...
Computer Engineering
ISBN:9780124077263
Author:David A. Patterson, John L. Hennessy
Publisher:Elsevier Science
Text book image
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:9781337569330
Author:Jill West, Tamara Dean, Jean Andrews
Publisher:Cengage Learning
Text book image
Concepts of Database Management
Computer Engineering
ISBN:9781337093422
Author:Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:Cengage Learning
Text book image
Prelude to Programming
Computer Engineering
ISBN:9780133750423
Author:VENIT, Stewart
Publisher:Pearson Education
Text book image
Sc Business Data Communications and Networking, T...
Computer Engineering
ISBN:9781119368830
Author:FITZGERALD
Publisher:WILEY