Cerco di implementare un PriorityQueue con C #:
public class PriorityQueue<T> : Heap<T> where T : IComparable<T> {
...
}
L'heap è astratto. Ho MinHeap e MaxHeap derivati da Heap.
public abstract class Heap<T> where T : IComp ...
public class MinHeap<T> : Heap<T> ...
public class MaxHeap<T> : Heap<T> ...
Esiste la possibilità di decidere nel costruttore di PriorityQueue durante il runtime, se il PrioQueue diventa un MinHeap o MaxHeap? Come:
public PriorityQueue(bool type) {
if (type = smallestFirst) { this = MinHeap ... }
else { this = MaxHeap ... }
}
Se provo in questo modo, allora dice che "questo" è protetto da scrittura. Altre idee?