BBranchSpire
Ruang kerja kode dengan AI

Rekonstruksi pohon dari penelusuran

Bangun kembali pohon biner dari urutan preorder dan inorder dengan paling banyak 100 label bulat berbeda.

● ● ●BranchSpire●
Alur kerja · Rekonstruksi pohon dari penelusuran ×
def rebuild_tree(preorder, inorder):
    for row in (preorder,inorder):
        if type(row) not in (list,tuple) or len(row) > 100 or any(type(v) is not int for v in row):
            raise ValueError("at most 100 integer nodes")
    if len(set(preorder)) != len(preorder) or len(set(inorder)) != len(inorder) or set(preorder) != set(inorder):
        raise ValueError("same distinct node labels")
    positions, cursor = {v:i for i,v in enumerate(inorder)}, 0
    def visit(lo,hi):
        nonlocal cursor
        if lo == hi: return None
        value = preorder[cursor]; cursor += 1
        at = positions[value]
        if not lo <= at < hi: raise ValueError("inconsistent traversals")
        left = visit(lo,at)
        right = visit(at+1,hi)
        return value,left,right
    return visit(0,len(inorder))
✳Bangun kembali pohon biner dari urutan preorder dan inorder dengan paling banyak 100 label bulat berbeda.
✓ PerubahanTinjau sebelum menerapkan ↗
Ilustrasi ruang kerja
01

Model

Atur endpoint kompatibel OpenAI atau Anthropic dengan URL dasar dan kunci API jika diperlukan. Uji koneksi. Server model lokal harus berjalan; alat jarak jauh dapat mengirim data secara terpisah.

02

Proyek

Uji pohon kosong dan miring, lalu tolak penelusuran tidak cocok atau label berulang tanpa mengubah masukan.

03

Tinjau sebelum menerapkan

Bandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain.

Alur kerja

Rekonstruksi pohon dari penelusuran

Alur kerja ↗
Alur kerja
def rebuild_tree(preorder, inorder):
    for row in (preorder,inorder):
        if type(row) not in (list,tuple) or len(row) > 100 or any(type(v) is not int for v in row):
            raise ValueError("at most 100 integer nodes")
    if len(set(preorder)) != len(preorder) or len(set(inorder)) != len(inorder) or set(preorder) != set(inorder):
        raise ValueError("same distinct node labels")
    positions, cursor = {v:i for i,v in enumerate(inorder)}, 0
    def visit(lo,hi):
        nonlocal cursor
        if lo == hi: return None
        value = preorder[cursor]; cursor += 1
        at = positions[value]
        if not lo <= at < hi: raise ValueError("inconsistent traversals")
        left = visit(lo,at)
        right = visit(at+1,hi)
        return value,left,right
    return visit(0,len(inorder))
Ruang kerja kode dengan AI

Pertahankan struktur saat mengubah kode rekonstruksi

Data terstruktur dapat lolos pemeriksaan keanggotaan dasar namun tetap gagal menggambarkan struktur valid. BranchSpire adalah ruang kerja pemrograman AI Windows untuk memeriksa kesenjangan itu dengan berkas proyek terlihat. Mulailah percakapan tentang kontrak masukan dan objek yang diharapkan pemanggil sebelum meminta perubahan sumber.

Tugas konkretnya adalah meninjau rekonstruksi dari traversal preorder dan inorder. Berikan pohon valid kecil dan pasangan traversal tidak konsisten, lalu minta model terhubung memeriksa tempat implementasi membedakannya. Nyatakan syarat label berbeda agar kode usulan tidak diam-diam mengasumsikan keunikan yang tidak pernah ditetapkan pemanggil.

Tinjau antarmuka terkait serta logika rekursif. Tentukan cara melaporkan data tidak valid dan apakah pemanggil mengandalkan representasi kembalian tertentu. Jalankan kasus uji masukan kosong, satu simpul, dan kombinasi tidak valid dalam proyek sendiri. Contoh yang berhasil menunjukkan satu jalur; kasus penolakan eksplisit membantu menetapkan batas data yang diterima.

BranchSpire terhubung ke endpoint yang kompatibel dengan OpenAI atau endpoint Anthropic yang didukung, dengan kredensial bila diperlukan. Anda dapat memilih model AI abliterasi yang tersedia, sementara servernya menentukan alat dan batas konteks. Gunakan koneksi tersebut untuk mengembangkan dan mempertanyakan usulan, lalu nilai perbedaan kode dan hasil eksekusi terhadap struktur yang dibutuhkan aplikasi.

Mempertahankan struktur saat mengubah kode rekonstruksi — pertanyaan sebelum menyunting

Mengapa keanggotaan yang sama tidak cukup untuk rekonstruksi?

Urutan traversal juga harus menggambarkan struktur yang konsisten. Sertakan urutan tidak valid dengan label yang sama saat membahas tugas. Minta model mengidentifikasi titik tempat implementasi usulan mendeteksi ketidakkonsistenan itu.

Haruskah label duplikat diterima?

Hanya jika kontrak rekonstruksi secara eksplisit mendukungnya. Tugas ilustratif ini mengasumsikan label berbeda. Tinjau validasi dan pemanggil bersama agar masukan ambigu ditolak secara sengaja, bukan menghasilkan struktur berdasarkan asumsi yang tidak terdokumentasi.

Detail keluaran apa yang harus dipertahankan saat refaktorisasi?

Tentukan representasi simpul, nilai pohon kosong, dan urutan anak yang diharapkan pemakai. Pohon yang setara secara matematis tetap dapat merusak integrasi jika representasinya berubah. Periksa pemakai itu sebelum menerima refaktorisasi lebih luas.

Bagaimana menjaga peninjauan kode rekursif tetap terarah?

Berikan kasus uji singkat dengan hasil diketahui dan mintalah penjelasan batas serta jalur kegagalan. Tinjau perbedaan sumber sebenarnya, lalu jalankan kasus tersebut dengan alat proyek. Hindari bergantung pada uraian panjang tanpa pemeriksaan yang sesuai.

Unduh untuk Windows ↗

BranchSpire · Diperbarui 2026-10-25