#include "station.h" bool station::addToStation(int car) { if(current_car == -1 and car > 0 and !s.in_stack(car) and !q.in_queue(car) and !d.in_deque(car) and !ir.in_irdeque(car) and !ord.in_ordeque(car)) { current_car = car; return true; } else { return false; } } int station::showCurrentCar() { return current_car; } bool station::removeFromStation() { if(current_car != -1) { current_car = -1; return true; } return false; } bool station::addToStack() { if(current_car == -1 or s.l.size() > 5) { return false; } else { bool success = s.addToStack(current_car); if(success) { current_car = -1; return true; } return false; } } bool station::removeFromStack() { if(s.l.size() == 0 or current_car != -1) { return false; } current_car = s.removeFromStack(); return true; } int station::showTopOfStack() { if(s.l.size() == 0) { return -1; } return s.showTopOfStack(); } int station::showSizeOfStack() { return s.l.size(); } bool station::addToQueue() { if(current_car == -1 or q.l.size() > 5) { return false; } else { bool success = q.addToQueue(current_car); if(success) { current_car = -1; return true; } return false; } } bool station::removeFromQueue() { if(q.l.size() == 0 or current_car != -1) { return false; } current_car = q.removeFromQueue(); return true; } int station::showTopOfQueue() { if(q.l.size() == 0) { return -1; } return q.showTopOfQueue(); } int station::showSizeOfQueue() { return q.showSizeOfQueue(); } bool station::addToDequeLeft() { if(current_car == -1 or d.l.size() > 5) { return false; } else { bool success = d.addToDequeRight(current_car); if(success) { current_car = -1; return true; } return false; } return false; } bool station::addToDequeRight() { if(current_car == -1 or d.l.size() > 5) { return false; } else { bool success = d.addToDequeLeft(current_car); if(success) { current_car = -1; return true; } return false; } } bool station::removeFromDequeLeft() { if(d.l.size() == 0 or current_car != -1) { return false; } current_car = d.removeFromDequeLeft(); return true; } bool station::removeFromDequeRight() { if(d.l.size() == 0 or current_car != -1) { return false; } current_car = d.removeFromDequeRight(); return true; } int station::showTopOfDequeLeft() { if(d.l.size() == 0) { return -1; } return d.showTopOfDequeLeft(); } int station::showTopOfDequeRight() { if(d.l.size() == 0) { return -1; } return d.showTopOfDequeRight(); } int station::showSizeOfDeque() { return d.showSizeOfDeque(); } bool station::addToIRDequeLeft() { if(current_car == -1 or ir.l.size() > 5) { return false; } else { bool success = ir.addToIRDequeLeft(current_car); if(success) { current_car = -1; return true; } return false; } return false; } bool station::removeFromIRDequeLeft() { if(ir.l.size() == 0 or current_car != -1) { return false; } current_car = ir.removeFromIRDequeRight(); return true; } bool station::removeFromIRDequeRight() { if(ir.l.size() == 0 or current_car != -1) { return false; } current_car = ir.removeFromIRDequeLeft(); return true; } int station::showTopOfIRDequeLeft() { if(ir.l.size() == 0) { return -1; } return ir.showTopOfIRDequeRight(); } int station::showTopOfIRDequeRight() { if(ir.l.size() == 0) { return -1; } return ir.showTopOfIRDequeLeft(); } int station::showSizeOfIRDeque() { return ir.l.size(); } bool station::addToORDequeLeft() { if(current_car == -1 or ord.l.size() > 5) { return false; } else { bool success = ord.addToORDequeRight(current_car); if(success) { current_car = -1; return true; } return false; } return false; } bool station::addToORDequeRight() { if(current_car == -1 or ord.l.size() > 5) { return false; } else { bool success = ord.addToORDequeLeft(current_car); if(success) { current_car = -1; return true; } return false; } } bool station::removeFromORDequeLeft() { if(ord.l.size() == 0 or current_car != -1) { return false; } current_car = ord.removeFromORDequeLeft(); return true; } int station::showTopOfORDequeLeft(){ if(ord.l.size() == 0) { return -1; } return ord.showTopOfORDequeLeft(); } int station::showSizeOfORDeque() { return ord.l.size(); }