made SPQ functions virtual to allow for Edge class to use an SPQ pointer when using a TSPQ object