adding cs235
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
#pragma once
|
||||
#include "StationInterface.h"
|
||||
using namespace std;
|
||||
|
||||
/*
|
||||
WARNING: It is expressly forbidden to modify any part of this document, including its name
|
||||
*/
|
||||
class StationInterfaceExtra : public StationInterface
|
||||
{
|
||||
public:
|
||||
StationInterfaceExtra(){}
|
||||
virtual ~StationInterfaceExtra(){}
|
||||
|
||||
//Input-Restricted Deque----------------------------------------------
|
||||
/**
|
||||
* Adds the current car to the IRDeque on the left side. After this operation, there should be no current car.
|
||||
* Does nothing if there is no current car or if the IRDeque is already full.
|
||||
*
|
||||
* @return true if the car is successfully added to the IRDeque; false otherwise
|
||||
*/
|
||||
virtual bool addToIRDequeLeft() = 0;
|
||||
|
||||
/**
|
||||
* Removes the leftmost car in the IRDeque and makes it the current car.
|
||||
* Does nothing if there is already a current car or if the IRDeque already empty.
|
||||
*
|
||||
* @return true if the car is successfully removed from the IRDeque; false otherwise
|
||||
*/
|
||||
virtual bool removeFromIRDequeLeft() = 0;
|
||||
|
||||
/**
|
||||
* Removes the rightmost car in the IRDeque and makes it the current car.
|
||||
* Does nothing if there is already a current car or if the IRDeque already empty.
|
||||
*
|
||||
* @return true if the car is successfully removed from the IRDeque; false otherwise
|
||||
*/
|
||||
virtual bool removeFromIRDequeRight() = 0;
|
||||
|
||||
/**
|
||||
* Returns the ID of the leftmost car in the IRDeque.
|
||||
*
|
||||
* @return the ID of the leftmost car in the IRDeque; -1 if the IRDeque is empty
|
||||
*/
|
||||
virtual int showTopOfIRDequeLeft() = 0;
|
||||
|
||||
/**
|
||||
* Returns the ID of the rightmost car in the IRDeque.
|
||||
*
|
||||
* @return the ID of the rightmost car in the IRDeque; -1 if the IRDeque is empty
|
||||
*/
|
||||
virtual int showTopOfIRDequeRight() = 0;
|
||||
|
||||
/**
|
||||
* Returns the number of cars in the IRDeque.
|
||||
*
|
||||
* @return the number of cars in the IRDeque
|
||||
*/
|
||||
virtual int showSizeOfIRDeque() = 0;
|
||||
|
||||
//Output-Restricted Deque---------------------------------------------
|
||||
/**
|
||||
* Adds the current car to the ORDeque on the left side. After this operation, there should be no current car.
|
||||
* Does nothing if there is no current car or if the ORDeque is already full.
|
||||
*
|
||||
* @return true if the car is successfully added to the ORDeque; false otherwise
|
||||
*/
|
||||
virtual bool addToORDequeLeft() = 0;
|
||||
|
||||
/**
|
||||
* Adds the current car to the ORDeque on the right side. After this operation, there should be no current car.
|
||||
* Does nothing if there is no current car or if the ORDeque is already full.
|
||||
*
|
||||
* @return true if the car is successfully added to the ORDeque; false otherwise
|
||||
*/
|
||||
virtual bool addToORDequeRight() = 0;
|
||||
|
||||
/**
|
||||
* Removes the leftmost car in the ORDeque and makes it the current car.
|
||||
* Does nothing if there is already a current car or if the ORDeque already empty.
|
||||
*
|
||||
* @return true if the car is successfully removed from the ORDeque; false otherwise
|
||||
*/
|
||||
virtual bool removeFromORDequeLeft() = 0;
|
||||
|
||||
/**
|
||||
* Returns the ID of the leftmost car in the ORDeque.
|
||||
*
|
||||
* @return the ID of the leftmost car in the ORDeque; -1 if the ORDeque is empty
|
||||
*/
|
||||
virtual int showTopOfORDequeLeft() = 0;
|
||||
|
||||
/**
|
||||
* Returns the number of cars in the ORDeque.
|
||||
*
|
||||
* @return the number of cars in the ORDeque
|
||||
*/
|
||||
virtual int showSizeOfORDeque() = 0;
|
||||
};
|
||||
Reference in New Issue
Block a user