EXPLAIN THE FLOW OF THE MAIN CODE (THE CODE IS ALREADY CORRECT YOU JUST NEED TO EXPLAIN THE FLOW) #include #include "linkedlist.h" /**  * This activity is focused on using Arrays and Linked Lists as two different  * implementations of List. It follows that you are only to use the methods of  * List and not of the specific array or linkedlist.  */ int main(void) {     // WARNING! Do not modify this line up until line 22!     // Doing so will nullify your score for this activity.     // Also, do not create more instances of ArrayList or LinkedList     // aside from those in lines 19 and 21.     char li;     cin >> li;          List* list;     if (li == 'A') {       list = new ArrayList();     } else {       list = new LinkedList();     }          char sym;     int arg1;     int arg2;     int count;     int sum;     // You may want to insert a loop here     do{       cin >> sym;       switch (sym) {         case '?':           cin >> arg1;           cout << list->get(arg1) << endl;           break;         case '+':           cin >> arg1;           list->add(arg1);           break;         case '-':           cin >> arg1;           cout << list->removeAt(arg1) << endl;           break;         case '\'':           cin >> arg1;           cout << list->remove(arg1) << endl;           break;         case '\"':           cin >> arg1;           count = 0;           while (list->remove(arg1) != 0){             count++;           }           cout <> arg1 >> arg2;           list->addAt(arg1,arg2);           break;         case '$':           cout << list->size() << endl;           break;         case '<':           cin >> arg1;           if (arg1 < list->size()){             for (int i=1; i<=arg1; i++){               list->removeAt(1);             }           }           break;         case '>':           cin >> arg1;           if (arg1 <= list->size()){             for (int i=1; i<=arg1; i++){               list->removeAt(list->size());             }           }           break;         case '*':           cin >> arg1 >> arg2;           if (arg1 <= list->size() && arg2 <= list->size()){             cout << list->get(arg1) * list->get(arg2) << endl;           }           break;         case '^':           cin >> arg1 >> arg2;           if (arg1 <= list->size() && arg2 <= list->size()){             if(list->get(arg1) > list->get(arg2)){               cout << list->get(arg1) << endl;             }else{               cout << list->get(arg2) << endl;             }           }           break;         case '!':           cin >> arg1 >> arg2;           if (arg1 <= list->size() && arg2 <= list->size()){             cout << list->get(arg2) - list->get(arg1) << endl;           }           break;         case '=':           sum = 0;           for (int i=1; i<= list->size(); i++){             sum += list->get(i);           }           cout << sum << endl;           break;         case '#':           list->print();           break;       }     }     while (sym != '/');          return 0; }

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

EXPLAIN THE FLOW OF THE MAIN CODE (THE CODE IS ALREADY CORRECT YOU JUST NEED TO EXPLAIN THE FLOW)

#include <iostream>
#include "linkedlist.h"

/**
 * This activity is focused on using Arrays and Linked Lists as two different
 * implementations of List. It follows that you are only to use the methods of
 * List and not of the specific array or linkedlist.
 */
int main(void) {
    // WARNING! Do not modify this line up until line 22!
    // Doing so will nullify your score for this activity.
    // Also, do not create more instances of ArrayList or LinkedList
    // aside from those in lines 19 and 21.
    char li;
    cin >> li;
    
    List* list;
    if (li == 'A') {
      list = new ArrayList();
    } else {
      list = new LinkedList();
    }
    
    char sym;
    int arg1;
    int arg2;
    int count;
    int sum;
    // You may want to insert a loop here
    do{
      cin >> sym;
      switch (sym) {
        case '?':
          cin >> arg1;
          cout << list->get(arg1) << endl;
          break;
        case '+':
          cin >> arg1;
          list->add(arg1);
          break;
        case '-':
          cin >> arg1;
          cout << list->removeAt(arg1) << endl;
          break;
        case '\'':
          cin >> arg1;
          cout << list->remove(arg1) << endl;
          break;
        case '\"':
          cin >> arg1;
          count = 0;
          while (list->remove(arg1) != 0){
            count++;
          }
          cout <<count << endl;
          break;
        case '@':
          cin >> arg1 >> arg2;
          list->addAt(arg1,arg2);
          break;
        case '$':
          cout << list->size() << endl;
          break;
        case '<':
          cin >> arg1;
          if (arg1 < list->size()){
            for (int i=1; i<=arg1; i++){
              list->removeAt(1);
            }
          }
          break;
        case '>':
          cin >> arg1;
          if (arg1 <= list->size()){
            for (int i=1; i<=arg1; i++){
              list->removeAt(list->size());
            }
          }
          break;
        case '*':
          cin >> arg1 >> arg2;
          if (arg1 <= list->size() && arg2 <= list->size()){
            cout << list->get(arg1) * list->get(arg2) << endl;
          }
          break;
        case '^':
          cin >> arg1 >> arg2;
          if (arg1 <= list->size() && arg2 <= list->size()){
            if(list->get(arg1) > list->get(arg2)){
              cout << list->get(arg1) << endl;
            }else{
              cout << list->get(arg2) << endl;
            }
          }
          break;
        case '!':
          cin >> arg1 >> arg2;
          if (arg1 <= list->size() && arg2 <= list->size()){
            cout << list->get(arg2) - list->get(arg1) << endl;
          }
          break;
        case '=':
          sum = 0;
          for (int i=1; i<= list->size(); i++){
            sum += list->get(i);
          }
          cout << sum << endl;
          break;
        case '#':
          list->print();
          break;
      }
    }
    while (sym != '/');
    
    return 0;
}

Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Linked List Representation
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education