Source of linked_node_main.cpp


  1: /** @file linked_node_main.cpp
  2: Illustrates various operations on a sequence of linked nodes.
  3: */

  5: #include <iostream>
  6: using namespace std;

  8: #include "utilities.h"
  9: using Scobey::Pause;
 10: using Scobey::Menu;

 12: #include "linked_node_functions.h"

 14: int main()
 15: {
 16:     Menu m("Menu");
 17:     m.addOption("Quit");
 18:     m.addOption("Get info");
 19:     m.addOption("Build a new sequence of fixed size");
 20:     m.addOption("Display all node data values in current sequence");
 21:     m.addOption("Find location of first node containing given data value");
 22:     m.addOption("Add new node after first node containing given data value");
 23:     m.addOption("Add new node before first node containing given data value");
 24:     m.addOption("Delete first node containing given data value");
 25:     m.addOption("Reverse digits of data value in each node");

 27:     NodePointer head;
 28:     InitializeSequence(head);
 29:     int menuChoice;
 30:     do
 31:     {
 32:         m.display();
 33:         menuChoice = m.getChoice();
 34:         switch (menuChoice)
 35:         {
 36:             case -1:
 37:             case 1: Pause(0, "Program is now terminating."); break;
 38:             case 2: DescribeProgram();                       break;
 39:             case 3: BuildSequenceFixedSize(head);            break;
 40:             case 4: PrintNodeValues(head);  Pause();         break;
 41:             case 5: FindDataValues(head);                    break;
 42:             case 6: InsertAfterNodeWithDataValue(head);      break;
 43:             case 7: InsertBeforeNodeWithDataValue(head);     break;
 44:             case 8: DeleteNodeWithDataValue(head);           break;
 45:             case 9: ProcessAllNodes(head, ReverseAllDigits); break;
 46:         }
 47:     }
 48:     while (menuChoice != 1  &&  menuChoice != -1);
 49: }