Bagaimana Melaksanakan Senarai Terpaut di Python?



Artikel ini menunjukkan bagaimana anda boleh membuat senarai terpaut di python dengan pelbagai kaedah untuk memasukkan kemas kini dan membuang unsur-unsur dalam senarai terpaut.

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 .
senarai terpaut - senarai terpaut di python - edurekaPerpustakaan 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.