Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdio.h>
- #include <stdlib.h>
- using namespace std;
- struct QueueElem
- {
- char info;
- QueueElem *NEXT;
- };
- class queue //Класс очереди
- {
- QueueElem *head; // указатель, хранящий адресс головы очереди
- int size; //Текущий размер очереди
- public:
- queue(){
- head = 0;
- size = 0;
- }
- int Queue_size(){ return size; }
- QueueElem* get_head(){ return head; }
- void push(char info)
- {
- size++;
- QueueElem *temp = new QueueElem;
- temp->info = info;
- temp->NEXT = head;
- head = temp;
- }
- char pop(){
- QueueElem *temp = head;
- if (size >= 2){
- while (temp->NEXT->NEXT != 0) {
- temp = temp->NEXT;
- }
- size--;
- char a = temp->info;
- delete temp;
- return a;
- }
- if (size == 1) {
- char a = head->info;
- delete head;
- return a;
- }
- if (size == 0) {
- cout << "No elements" << endl;
- return 0;
- }
- }
- bool Check_empty(){
- if (size = 0){ return true; }
- return false;
- }
- queue(const queue &A){
- QueueElem *temp = new QueueElem;
- QueueElem *p1 = A.head;//указатель который будет бегать по начальной очереди
- temp->info = A.head->info;
- temp->NEXT = 0;
- head = temp;
- QueueElem *p2 = head;
- while (p1->NEXT != 0){
- temp = temp->NEXT;
- }
- }
- ~queue(){
- if (Check_empty == false){
- while (head->NEXT != 0){
- QueueElem *temp = head;
- head = head->NEXT;
- delete temp;
- }
- }
- }
- //конструктор копирования,перегрузить =,<<,>>
- //для массива реализовать помимо прочего еще []
- };
- int main()
- {
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement