


Bagaimana untuk melaksanakan pepohon carian binari dalam Python
Binary Search Tree (BST) ialah algoritma carian berdasarkan pepohon binari. Cirinya ialah nilai dalam subpokok kiri setiap nod dalam pokok adalah lebih kecil daripada nilai nod ini, manakala nilai dalam subpohon kanan lebih besar daripada nilai nod ini. Oleh itu, kerumitan masa operasi carian dan sisipan BST ialah O(logN).
Kaedah melaksanakan pepohon carian binari dalam Python agak mudah, kerana Python mempunyai dua struktur data terbina dalam, senarai dan kamus, yang kedua-duanya boleh digunakan untuk melaksanakan pepohon binari. Di sini kami akan menerangkan cara melaksanakan pepohon carian binari menggunakan senarai.
Pertama, kita perlu mentakrifkan kelas Nod untuk mewakili nilai, subpokok kiri dan subpokok kanan setiap nod:
class Node: def __init__(self, value): self.value = value self.left = None self.right = None
Seterusnya, kita boleh menentukan kelas Pokok carian binari, yang mengandungi dua kaedah: masukkan dan cari. Dalam kaedah sisipan, kita mulakan dari nod akar dan bandingkan nilai nod satu demi satu Jika nilai yang baru dimasukkan adalah lebih kecil daripada nilai nod semasa, teruskan mencari di subpohon kiri, jika tidak, cari. dalam subpokok kanan. Apabila subpokok kiri (atau kanan) nod didapati kosong, ini bermakna nod yang akan dimasukkan harus diletakkan pada kedudukan ini.
class BinarySearchTree: def __init__(self): self.root = None def insert(self, value): new_node = Node(value) if self.root is None: self.root = new_node else: current_node = self.root while True: if value <= current_node.value: if current_node.left is None: current_node.left = new_node break else: current_node = current_node.left else: if current_node.right is None: current_node.right = new_node break else: current_node = current_node.right def search(self, value): current_node = self.root while current_node is not None: if value == current_node.value: return True elif value < current_node.value: current_node = current_node.left else: current_node = current_node.right return False
Kini, kita boleh mencipta pepohon dan memasukkan berbilang nod, dan kemudian menguji fungsi carian:
bst = BinarySearchTree() bst.insert(9) bst.insert(3) bst.insert(12) bst.insert(1) bst.insert(4) bst.insert(10) bst.insert(15) print(bst.search(4)) # True print(bst.search(7)) # False
Seperti yang anda lihat, untuk pepohon carian binari ini, apabila kita mencari 4 , mengembalikan Benar; dan apabila kita mencari 7, ia mengembalikan Salah, menunjukkan bahawa 7 tiada dalam pokok.
Apabila melaksanakan pepohon carian binari, anda perlu memberi perhatian kepada beberapa isu. Pertama, kerumitan masa operasi penyisipan dan carian bergantung pada ketinggian pokok, jadi dalam operasi praktikal, adalah sangat penting untuk mengekalkan ketinggian pokok sekecil mungkin. Kedua, untuk set data yang besar, pepohon carian binari mungkin menjadi tidak seimbang (iaitu, menjadi lebih seperti senarai daripada pepohon), menghasilkan carian yang lebih perlahan, jadi algoritma yang lebih maju seperti pepohon carian binari seimbang diperlukan.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pepohon carian binari dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Anda boleh mempelajari konsep pengaturcaraan asas dan kemahiran Python dalam masa 2 jam. 1. Belajar Pembolehubah dan Jenis Data, 2.

Python digunakan secara meluas dalam bidang pembangunan web, sains data, pembelajaran mesin, automasi dan skrip. 1) Dalam pembangunan web, kerangka Django dan Flask memudahkan proses pembangunan. 2) Dalam bidang sains data dan pembelajaran mesin, numpy, panda, scikit-learn dan perpustakaan tensorflow memberikan sokongan yang kuat. 3) Dari segi automasi dan skrip, Python sesuai untuk tugas -tugas seperti ujian automatik dan pengurusan sistem.

Tidak mustahil untuk melihat kata laluan MongoDB secara langsung melalui Navicat kerana ia disimpan sebagai nilai hash. Cara mendapatkan kata laluan yang hilang: 1. Tetapkan semula kata laluan; 2. Periksa fail konfigurasi (mungkin mengandungi nilai hash); 3. Semak Kod (boleh kata laluan Hardcode).

Sebagai profesional data, anda perlu memproses sejumlah besar data dari pelbagai sumber. Ini boleh menimbulkan cabaran kepada pengurusan data dan analisis. Nasib baik, dua perkhidmatan AWS dapat membantu: AWS Glue dan Amazon Athena.

Langkah -langkah untuk memulakan pelayan Redis termasuk: Pasang Redis mengikut sistem operasi. Mulakan perkhidmatan Redis melalui Redis-server (Linux/macOS) atau redis-server.exe (Windows). Gunakan redis-cli ping (linux/macOS) atau redis-cli.exe ping (windows) perintah untuk memeriksa status perkhidmatan. Gunakan klien Redis, seperti redis-cli, python, atau node.js untuk mengakses pelayan.

Untuk membaca giliran dari Redis, anda perlu mendapatkan nama giliran, membaca unsur -unsur menggunakan arahan LPOP, dan memproses barisan kosong. Langkah-langkah khusus adalah seperti berikut: Dapatkan nama giliran: Namakannya dengan awalan "giliran:" seperti "giliran: my-queue". Gunakan arahan LPOP: Keluarkan elemen dari kepala barisan dan kembalikan nilainya, seperti LPOP Queue: My-Queue. Memproses Baris kosong: Jika barisan kosong, LPOP mengembalikan nihil, dan anda boleh menyemak sama ada barisan wujud sebelum membaca elemen.

Soalan: Bagaimana untuk melihat versi pelayan Redis? Gunakan alat perintah Redis-cli -version untuk melihat versi pelayan yang disambungkan. Gunakan arahan pelayan INFO untuk melihat versi dalaman pelayan dan perlu menghuraikan dan mengembalikan maklumat. Dalam persekitaran kluster, periksa konsistensi versi setiap nod dan boleh diperiksa secara automatik menggunakan skrip. Gunakan skrip untuk mengautomasikan versi tontonan, seperti menyambung dengan skrip Python dan maklumat versi percetakan.

Keselamatan kata laluan Navicat bergantung pada gabungan penyulitan simetri, kekuatan kata laluan dan langkah -langkah keselamatan. Langkah -langkah khusus termasuk: menggunakan sambungan SSL (dengan syarat bahawa pelayan pangkalan data menyokong dan mengkonfigurasi sijil dengan betul), mengemas kini Navicat, menggunakan kaedah yang lebih selamat (seperti terowong SSH), menyekat hak akses, dan yang paling penting, tidak pernah merakam kata laluan.
