Advertisement
Guest User

stack

a guest
Apr 25th, 2018
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.26 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4. using namespace std;
  5.  
  6. vector<int> mystack;
  7. int top = -1;
  8. bool loaded = false;
  9.  
  10. void menu();
  11. void push(int data);
  12.  
  13. void showStack()
  14. {
  15.     cout << "stekas: {";
  16.     for(int i = 0; i <= top; i++)
  17.     {
  18.         if(i != top)
  19.         {
  20.             cout << mystack[i] << ", ";
  21.         }
  22.         else
  23.         {
  24.             cout << mystack[i] << "}" << endl;
  25.         }
  26.     }
  27. }
  28.  
  29. void write()
  30. {
  31.     ofstream output("input.txt");
  32.     int i = 0;
  33.     while(i <= top)
  34.     {
  35.         output << mystack[i] << " ";
  36.         i++;
  37.     }
  38.     output.close();
  39. }
  40.  
  41. void read()
  42. {
  43.     ifstream input;
  44.     input.open("input.txt");
  45.     int data;
  46.     while(input >> data)
  47.     {
  48.         push(data);
  49.     }
  50.     loaded = true;
  51.     input.close();
  52. }
  53.  
  54. bool isEmpty()
  55. {
  56.     if(top == -1)
  57.     {
  58.         return true;
  59.     }
  60.     else
  61.     {
  62.         return false;
  63.     }
  64. }
  65.  
  66. void pop()
  67. {
  68.     int data;
  69.     if(!isEmpty())
  70.     {
  71.         data = mystack[top];
  72.         mystack.pop_back();
  73.         top = top - 1;
  74.         cout << "--------" << endl;
  75.         cout << data << " pasalintas is steko!" << endl;
  76.         cout << "--------" << endl;
  77.         cout << endl;
  78.         menu();
  79.     }
  80.     else
  81.     {
  82.         cout << "--------" << endl;
  83.         cout << "Stekas tuscias, nera ka pasalinti!" << endl;
  84.         cout << "--------" << endl;
  85.         cout << endl;
  86.         menu();
  87.     }
  88. }
  89.  
  90. void push(int data)
  91. {
  92.     if(loaded == true)
  93.     {
  94.         top = top + 1;
  95.         mystack.push_back(data);
  96.         cout << "--------" << endl;
  97.         cout << "Reiksme " << data << " iterpta i steka!" << endl;
  98.         cout << "--------" << endl;
  99.         cout << endl;
  100.         menu();
  101.     }
  102.     else if(loaded == false)
  103.     {
  104.         top = top + 1;
  105.         mystack.push_back(data);
  106.     }
  107. }
  108.  
  109. void menu()
  110. {
  111.     if(!isEmpty())
  112.     {
  113.         showStack();
  114.     }
  115.     else
  116.     {
  117.         cout << "stekas tuscias!" << endl;
  118.     }
  119.  
  120.     cout << "---------------------------" << endl;
  121.     cout << "1. Iterpti i steka (push)" << endl;
  122.     cout << "2. Pasalinti is steko (pop)" << endl;
  123.     cout << "3. Issaugoti steka" << endl;
  124.     cout << "4. Issaugoti steka ir uzdaryti programa" << endl;
  125.     cout << "---------------------------" << endl;
  126.     cout << "Jusu pasirinkimas: ";
  127.  
  128.     char key;
  129.     cin >> key;
  130.     switch(key)
  131.     {
  132.         case '1':
  133.         {
  134.             cout << "Irasykite reiksme i konsole: ";
  135.             int data;
  136.             cin >> data;
  137.             cout << endl;
  138.             push(data);
  139.             break;
  140.         }
  141.         case '2':
  142.         {
  143.             cout << endl;
  144.             pop();
  145.             break;
  146.         }
  147.         case '3':
  148.         {
  149.             write();
  150.             cout << "--------" << endl;
  151.             cout << "Stekas issaugotas!" << endl;
  152.             cout << "--------" << endl;
  153.             menu();
  154.             break;
  155.         }
  156.         case '4':
  157.         {
  158.             write();
  159.             break;
  160.         }
  161.         default:
  162.         {
  163.             cout << "Tokio pasirinkimo nera!" << endl;
  164.             cout << endl;
  165.             key = '\0';
  166.             menu();
  167.             break;
  168.         }
  169.     }
  170. }
  171.  
  172. int main()
  173. {
  174.     read();
  175.     menu();
  176.     return 0;
  177. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement