Terinspirasi oleh pertanyaan terbaru tentang ...
Tulis fungsi untuk mencetak pohon biner dalam format berikut:
3
/ \
1 5
\ / \
2 4 6
- Outputnya harus terdiri dari garis node, diikuti oleh garis
/
dan\
karakter yang menunjukkan hubungan, diikuti oleh garis node, dll. - Anda dapat menganggap semua node direpresentasikan sebagai satu karakter.
- Node yang berdekatan pada level terendah harus dipisahkan oleh setidaknya satu ruang, node lebih jauh harus dipisahkan sebagaimana mestinya.
- Node dengan dua anak harus ditempatkan tepat di tengah anak-anak langsung mereka.
- Garis miring hubungan harus berada di tengah antara orang tua dan anak yang sesuai (putaran ke arah mana pun yang Anda inginkan).
Memasukkan:
Input akan diberikan sebagai argumen untuk fungsi Anda. Saya tidak akan menentukan struktur pohon yang tepat, namun itu harus dapat digunakan sebagai pohon biner yang sebenarnya. Tidak "pohon diwakili dalam program saya karena string secara kebetulan tampak seperti hasil yang diharapkan".
Anda dapat mencetak ke aliran output atau mengembalikan string yang berisi output, pilihan Anda.
Poin untuk kode terpendek, tapi saya lebih suka solusi panjang yang sepenuhnya berfungsi daripada 90% -pekerja pendek.
Perbarui untuk karunia:
Untuk hadiah, saya (Pengoptimal) melakukan sedikit perubahan:
- Masukan dapat dari argumen STDIN, ARGV atau fungsi.
- Output harus pada STDOUT (atau
console.log
untuk JS) - Anda dapat berasumsi bahwa input dalam bentuk array, misalnya.
[1,2,3]
atau[1 2 3]
Pembaruan 2 - Pohon biner sebenarnya harus pohon pencarian biner. Karena saya tidak menyebutkan ini pada awalnya, saya akan memungkinkan pengguna untuk memperlakukan mengubah array normal menjadi array pohon pencarian biner sebagai program terpisah dan jumlah byte terakhir hanya akan untuk program untuk mengambil dalam array sebagai argumen dan mencetaknya seperti pohon biner.
30000,1000,499999