Bahasa pengaturcaraan Python adalah bahasa sumber terbuka dengan pelbagai implementasi di luar kotak yang menjadikannya unik dan lebih mudah dipelajari. Walaupun tidak menyokong konsep senarai terpaut, ada jalan di sekitarnya melalui pelaksanaan yang berbeza untuk mendapatkan senarai terpaut. Dalam artikel ini, kita akan belajar bagaimana kita dapat membuat senarai terpaut di Python. Berikut adalah topik yang dibahas dalam blog ini:
Mari kita mulakan!!
Apakah Senarai Terpaut?
Senarai pautan adalah urutan node yang mempunyai jenis data yang serupa, setiap node mengandungi satu objek data dan penunjuk ke simpul seterusnya.
Senarai terpaut adalah struktur data linear dengan pengumpulan pelbagai nod. Di mana eelemen ach menyimpan datanya sendiri dan penunjuk ke lokasi elemen seterusnya. Pautan terakhir dalam senarai yang dipautkan menunjuk ke nol, yang menunjukkan akhir rantaian. Elemen dalam senarai terpaut disebut a simpul . Node pertama dipanggil kepala .Node terakhir dipanggilyang ekor .
Perpustakaan python standard tidak mempunyai senarai yang dipautkan. Kita boleh melaksanakan konsep struktur data senarai pautan dengan menggunakan konsep nod.
cara memasang hadoop pada linux
Sekarang kita telah mengetahui apa yang Ditautkan. Oleh itu mari kita teruskan untuk melaksanakan senarai Terpaut.
Melaksanakan Senarai Terpaut
Untuk membuat Senarai Terpaut, kami membuat objek simpul dan membuat kelas lain untuk menggunakan objek simpul ini.
Kod untuk membuat kelas Node.
Program di atas membuat senarai terpaut dengan tiga elemen data.
kelas Node (objek): # Konstruktor untuk menggunakan pemboleh ubah kelas def __init __ (diri, data = Tiada, next_node = Tiada): self.data = data self.next_node = next_node #get data def get_data (self): return self.data # dapatkan nilai seterusnya def get_next (self): return self.next_node # set data seterusnya def set_next (self, new_next): self.next_node = new_next
Pelaksanaan senarai pautan terdiri daripada fungsi berikut dalam senarai terpaut
satu. Masukkan : Kaedah ini akan memasukkan simpul baru dalam senarai terpaut.
2. Saiz : Kaedah ini akan mengembalikan ukuran senarai yang dipautkan.
3. Cari : Kaedah ini akan mengembalikan node yang mengandungi data, yang lain akan menimbulkan ralat
Empat. Padam : Kaedah ini akan menghapus node yang mengandungi data, yang lain akan menimbulkan ralat
Mari lihat senarai Kaedah Terpaut
Kaedah init dalam senarai terpaut
kelas LinkedList (objek): def __init __ (diri, kepala = Tiada): self.head = kepala
Kaedah init digunakan untuk inisialisasi a kelas pembolehubah jika senarai itu tidak mempunyai node, ia ditetapkan ke tidak.
Masukkan:
def insert (diri, data): new_node = Node (data) new_node.set_next (self.head) self.head = new_node
Kaedah sisipan ini mengambil data, memulakan simpul baru dengan data yang diberikan, dan menambahkannya ke senarai. Secara teknikal anda boleh memasukkan node di mana sahaja dalam senarai, tetapi cara paling mudah untuk melakukannya adalah dengan meletakkannya di bahagian atas senarai dan arahkan simpul baru ke kepala lama (semacam menolak nod yang lain).
Saiz
# Mengembalikan jumlah bilangan nod dalam senarai def size (diri): current = self.head count = 0 while current: count + = 1 current = current.get_next () return return
Kaedah ukurannya sangat mudah, pada dasarnya mengira nod sehingga tidak dapat dijumpai lagi, dan mengembalikan berapa banyak nod yang dijumpainya. Kaedah ini bermula pada node kepala, bergerak ke bawah garis simpul sehingga mencapai akhir (arus tidak akan ada ketika mencapai akhir) sambil mengawasi berapa banyak nod yang telah dilihatnya.
Cari
# Mengembalikan node dalam senarai yang mempunyai nodeData, ralat berlaku jika node tidak hadir mencari def (self, nodeData): current = self.head isPresent = False while current and isPresent is False: if current.get_data () == nodeData: isPresent = Betul lain: current = current.get_next () jika semasa Tiada: menaikkan ValueError ('Data tidak ada dalam senarai') kembali semasa
Pencarian sebenarnya sangat serupa dengan ukuran, tetapi bukannya melintasi keseluruhan senarai nod, ia memeriksa di setiap perhentian untuk melihat apakah node semasa mempunyai data yang diminta. Sekiranya demikian, kembalikan nod yang memegang data tersebut. Sekiranya kaedah tersebut melalui keseluruhan senarai tetapi masih belum menemui datanya, ini akan menimbulkan ralat nilai dan memberitahu pengguna bahawa data tersebut tidak ada dalam senarai.
Padam
# Keluarkan node dari senarai terpaut mengembalikan ralat jika nod tidak hadir def delete (self, nodeData): current = self.head sebelumnya = Tidak ada isPresent = Salah semasa semasa dan isPresent adalah Salah: jika semasa.get_data () == nodeData: isPresent = Betul lain: sebelumnya = semasa sekarang = semasa.get_next () jika semasa Tiada: tingkatkan NilaiError ('Data tidak ada dalam senarai') jika sebelumnya Tidak ada: self.head = current.get_next () lain: sebelumnya.set_next ( current.get_next ())
Kaedah hapus melintasi senarai dengan cara yang sama seperti yang dilakukan carian, tetapi selain mengesan node semasa, kaedah hapus juga mengingat node terakhir dikunjungi. Apabila hapus akhirnya tiba di simpul yang ingin dipadamkan. Ini hanya menghilangkan simpul dari rantai dengan 'melompati' itu.
Dengan ini saya bermaksud bahawa apabila kaedah hapus mencapai node yang ingin dipadamkan, ia melihat simpul terakhir yang dikunjungi (simpul ‘sebelumnya’) dan menetapkan semula penunjuk nod sebelumnya. Daripada menunjuk pada node yang akan segera dihapus.
Ia akan menunjuk ke simpul seterusnya sebaris. Oleh kerana tidak ada node yang menunjuk ke simpul buruk yang sedang dihapus, ia dihapuskan dengan berkesan dari senarai!
Ini membawa kita ke akhir artikel ini di mana kita telah belajar bagaimana kita dapat membuat senarai terpaut di python dengan pelaksanaan yang serupa walaupun python tidak benar-benar menyokong konsep senarai terpaut. Saya harap anda jelas dengan semua yang telah dikongsi dengan anda dalam tutorial ini.
Sekiranya anda mendapati artikel ini mengenai 'List Linked In Python' relevan, lihat Syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar yang berpuas hati tersebar di seluruh dunia.
Kami di sini untuk membantu anda dalam setiap langkah dalam perjalanan anda dan menyediakan kurikulum yang dirancang untuk pelajar dan profesional yang ingin menjadi . Kursus ini dirancang untuk memberi anda permulaan dalam pengaturcaraan Python dan melatih anda untuk konsep Python teras dan maju bersama dengan pelbagai suka
Sekiranya anda menjumpai sebarang pertanyaan, jangan ragu untuk mengajukan semua soalan anda di bahagian komen 'List Linked In Python' dan pasukan kami dengan senang hati akan menjawabnya.