Ini mungkin sangat naif, tapi saya bertanya-tanya, itu konteks pohon biner (polos, disortir dan seimbang), dari semua jenis traversal:
- pre-order mendalam-pertama
- mendalam-urutan pertama
- kedalaman-urutan pertama pasca
- luasnya dulu
apa kegunaan sebenarnya dari yang pre dan post-order? Maksud saya, apakah ada beberapa jenis dan / atau konfigurasi pohon biner di mana pre dan / atau post-order traversal akan memberikan (beberapa) keunggulan dibandingkan dua lainnya?
AFAICS, ada beberapa jenis dan konfigurasi pohon biner tertentu yang urutan-pertama dan lebarnya mungkin memberikan keuntungan tertentu:
untuk pohon biner seimbang setiap traversal first-first akan menggunakan lebih sedikit ruang penyimpanan memori dibandingkan dengan lebar pertama (mis. untuk pohon biner seimbang dari 6 atau 7 node, tingginya 2 sehingga traversal kedalaman-pertama mana pun perlu menyimpan maksimal 2 node pada waktu tertentu, sedangkan level terakhir memiliki 3 atau 4 node sehingga traversal-first perlu menyimpan hingga 3 atau 4 node di beberapa titik). Dalam hal ini menggunakan in-order traversal menggunakan jumlah memori paling sedikit dan mengunjungi node dalam urutan alami mereka.
untuk pohon biner yang tidak seimbang, jika dekat dengan skenario penyisipan kasus terburuk, melewatinya dengan lebar-pertama akan menggunakan lebih sedikit memori dibandingkan dengan lintas kedalaman-pertama. Jadi dalam hal ini luasnya menawarkan keuntungan. Inversal traversal memiliki lagi keuntungan dari nilai-nilai kunjungan dalam tatanan alami mereka.
Namun saya tidak bisa memikirkan situasi di mana pra dan pasca-traversal akan memberikan keuntungan daripada dua lainnya.
A + B * C
, yang jauh lebih mudah dipahami untuk pengguna normal daripada awalan urutan postfix.