Sto imparando gli heap in C ++ e ho una domanda sulla funzione heapify. Quindi, per costruire un heap da un array casuale, devi mettere gli elementi dell'array in un albero binario nell'ordine in cui appaiono e poi ricorsivamente, dal basso verso l'alto, creare l'heap (spostando gli elementi più bassi verso la radice) . Quindi, alla fine, dopo aver accumulato un sottoalbero destro e sinistro, basta spostare la radice nella sua posizione. La mia domanda è perché devi farlo in modo ricorsivo? Perché non puoi semplicemente mettere gli elementi nell'albero e iniziare a spostare gli elementi giù dalla radice, senza la parte ricorsiva? (Ho provato diversi esempi e sembra funzionare, ma presumo che sia qualcosa che ti impedisce di farlo in generale).