Salve, sto riscontrando difficoltà a correggere questo codice in maniera migliore.
template < class T > void CodaP < T >::fixDown (int k, int N) {
short int scambio = 1;
while (k <= N / 2 && scambio) {
int j = 2 * k;
tipoelem tmp;
if (j < N && heap[j - 1] > heap[j]) j++;
if (scambio = (heap[j - 1] < heap[k – 1])) {
tmp = heap[k – 1];
heap[k - 1] = heap[j - 1];
heap[j - 1] = tmp;
k = j;
}
}
};
Ho capito che gli errori stanno nel -1 in quanto ho già corretto nell'altra parte del codice, però vedo che anche la variabile "scambio" non è usata in maniera giusta. Come posso risolvere?