Salve, sto implementando come esercizio un heap. Nell'istruzione left, right e parent il prof scrive:
codice:
intleft(int i) { return i<<1; }        
int right(int i) { return (i<<1)|1; }
int parent(int i) { return i>>1; }

Qualcuno potrebbe spiegarmi le varie istruzioni?