Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- using namespace std;
- const int DEFAULT_QUEUE_SIZE = 10;
- template <class X>
- class queue
- {
- X *arr;
- int capacity;
- int front;
- int rear;
- int count;
- public:
- queue(unsigned int size = DEFAULT_QUEUE_SIZE);
- void pop();
- void push(X x);
- void showQueue();
- X front_element();
- X back_element();
- unsigned int size();
- bool isEmpty();
- bool isFull();
- };
- template <class X>
- queue<X>::queue(unsigned int size)
- {
- arr = new X[size];
- capacity = size;
- front = 0;
- rear = -1;
- count = 0;
- }
- template <class X>
- void queue<X>::pop()
- {
- cout << "Pasalinama: " << arr[front] << endl;
- front = (front + 1) % capacity;
- count--;
- }
- template <class X>
- void queue<X>::push(X element)
- {
- cout << "Iterpiama: " << element << endl;
- rear = (rear + 1) % capacity;
- arr[rear] = element;
- count++;
- }
- template <class X>
- X queue<X>::front_element()
- {
- return arr[front];
- }
- template <class X>
- X queue<X>::back_element()
- {
- return arr[rear];
- }
- template <class X>
- unsigned int queue<X>::size()
- {
- return count;
- }
- template <class X>
- bool queue<X>::isFull()
- {
- return (size() == capacity);
- }
- template <class X>
- bool queue<X>::isEmpty()
- {
- return (size() == 0);
- }
- template <class X>
- void queue<X>::showQueue()
- {
- for(int i = 0; i < count; i++)
- {
- cout << arr[i] << " ";
- }
- }
- int main()
- {
- unsigned int pick_id = 0;
- int element;
- queue <int> custom_queue(10);
- do
- {
- cout << "Pasirinkite veiksma, kuri norite atlikti:\n\n1. Prideti elementa i eile (eiles gala);\n2. Istrinti elementa is eiles (eiles priekis);\n3. Pamatyti pirma eiles elementa;\n4. Pamatyti paskutini eiles elementa;\n5. Pamatyti visa eile;\n6. Patikrinti ar eile yra tuscia;\n7. Patikrinti ar eile yra pilna;\n8. Baigti darba." << endl;
- cout << endl << "Jusu pasirinkimas: ";
- cin >> pick_id;
- cout << endl;
- switch (pick_id)
- {
- case 1:
- {
- if (custom_queue.isFull())
- {
- system("CLS");
- cout << "Negalite prideti daugiau elementu! Pasiektas max elementu skaicius eileje (" << custom_queue.size() << ")" << endl << endl;
- break;
- }
- else
- {
- system("CLS");
- cout << "Prideti elementa (liko vietu: " << DEFAULT_QUEUE_SIZE - custom_queue.size() << "): ";
- cin >> element;
- custom_queue.push(element);
- cout << "Eiles turinys: ";
- custom_queue.showQueue();
- cout << endl << endl;
- break;
- }
- }
- case 2:
- {
- if(custom_queue.isEmpty())
- {
- system("CLS");
- cout << "Negalite pasalinti daugiau elementu! Eileje nera nei vieno elemento!" << endl << endl;
- break;
- }
- else
- {
- system("CLS");
- custom_queue.pop();
- cout << "Eiles turinys: ";
- custom_queue.showQueue();
- cout << endl << endl;
- break;
- }
- }
- case 3:
- {
- if (custom_queue.isEmpty())
- {
- system("CLS");
- cout << "Eileje nera nei vieno elemento!" << endl << endl;
- break;
- }
- system("CLS");
- cout << "Pirmas elementas eileje: " << custom_queue.front_element() << endl << endl;
- break;
- }
- case 4:
- {
- if (custom_queue.isEmpty())
- {
- system("CLS");
- cout << "Eileje nera nei vieno elemento!" << endl << endl;
- break;
- }
- system("CLS");
- cout << "Paskutinis elementas eileje: " << custom_queue.back_element() << endl << endl;
- break;
- }
- case 5:
- {
- if (custom_queue.isEmpty())
- {
- system("CLS");
- cout << "Eileje nera nei vieno elemento!" << endl << endl;
- break;
- }
- system("CLS");
- cout << "Eiles turinys: ";
- custom_queue.showQueue();
- cout << endl << endl;;
- break;
- }
- case 6:
- {
- if(custom_queue.isEmpty())
- {
- system("CLS");
- cout << "Taip, eile tuscia!" << endl << endl;
- break;
- }
- else
- {
- system("CLS");
- cout << "Ne, eileje yra elementu!" << endl << endl;
- break;
- }
- }
- case 7:
- {
- if (custom_queue.isFull())
- {
- system("CLS");
- cout << "Taip, eileje yra pilna!" << endl << endl;
- break;
- }
- else
- {
- system("CLS");
- cout << "Ne, eile nera pilna!" << endl << endl;
- break;
- }
- }
- case 8:
- {
- cout << "Baigiamas darbas..." << endl;
- exit(EXIT_SUCCESS);
- }
- default:
- {
- cout << "Pasirinkite veiksma, kuri norite atlikti:\n\n1. Prideti elementa i eile (eiles gala);\n2. Istrinti elementa is eiles (eiles priekis);\n3. Pamatyti pirma eiles elementa;\n4. Pamatyti paskutini eiles elementa;\n5. Pamatyti visa eile;\n6. Patikrinti ar eile yra tuscia;\n7. Patikrinti ar eile yra pilna;\n8. Baigti darba." << endl;
- break;
- }
- }
- } while(pick_id != 8);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement