Исключение std::bad_alloc
struct queue {
int data;
queue* nextptr;
void queue_push(int data);
void queue_lout();
void queue_pop();
};
queue* tail = nullptr;
queue* head = nullptr;
void queue::queue_push(int data) {
queue* temp = new queue();
temp->data = data;
temp->nextptr = nullptr;
if (tail == nullptr && head == nullptr) {
tail = head = temp;
return;
}
head->nextptr = temp;
head = temp;
}
void queue::queue_lout() {
queue* temp = tail;
while (tail) {
cout << tail->data << " ";
tail = tail->nextptr;
}
cout << endl;
tail = temp;
}
void queue::queue_pop() {
queue* temp = tail;
if (tail == nullptr)return;
if (tail == head) {
tail = head = nullptr;
}
else {
tail = tail->nextptr;
}
delete temp;
}
void fourth_task() {
queue* firstqueue=nullptr;
queue* secondqueue = nullptr;
queue* tmp = tail;
while (tmp) {
if (tmp->data % 2 == 0) {
secondqueue->queue_push(tmp->data);
}
else if (tmp->data % 2 != 0) {
firstqueue->queue_push(tmp->data);
}
tmp = tmp->nextptr;
}
firstqueue->queue_lout();
secondqueue->queue_lout();
}
int main() {
queue* queue1 = nullptr;
for (int i = 0; i < 10; i++) {
queue1->queue_push(i);
}
queue1->queue_lout();
fourth_task();
return 0;
}
Дана очередь из 10 чисел, нужно создать две очереди и распределить нечетные числа в первую, а четные - во вторую. В функции fourth_task() ловится исключение std::bad_alloc