Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh melaksanakan fungsi senarai terpaut dengan berkesan dalam Python?

Bagaimanakah saya boleh melaksanakan fungsi senarai terpaut dengan berkesan dalam Python?

Barbara Streisand
Barbara Streisandasal
2024-10-31 12:26:01489semak imbas

How can I effectively implement linked list functionality in Python?

Menggunakan Senarai Terpaut dalam Python

Dalam Python, senarai standard dan struktur data tuple bukanlah senarai terpaut yang benar. Senarai terpaut mempunyai kelebihan unik, termasuk penggabungan masa malar dan rujukan mudah bahagian yang berbeza.

Untuk menentukan senarai terpaut dalam Python, anda boleh menggunakan kod berikut:

>>> class Node:
...     def __init__(self, data):
...         self.data = data
...         self.next = None

Ini mentakrifkan kelas "Nod" yang boleh menyimpan sekeping data dan merujuk nod seterusnya dalam senarai.

Untuk membuat senarai terpaut, buat nod dan pautkannya bersama:

>>> head = Node(1)
>>> second = Node(2)
>>> third = Node(3)
>>> head.next = second
>>> second.next = third

Ini kod mencipta senarai terpaut dengan kepala, kedua dan ketiga sebagai nod. Nod kepala ialah titik permulaan senarai.

Untuk mengakses elemen dalam senarai, rentas nod:

>>> current_node = head
>>> while current_node is not None:
...     print(current_node.data)
...     current_node = current_node.next

Kod ini mencetak data dalam setiap nod dalam senarai.

Bagi aplikasi tertentu, deque (barisan dua hujung) mungkin juga sesuai. Deques membenarkan untuk menambah dan mengalih keluar item dari kedua-dua hujung dengan kerumitan masa O(1).

<code class="python">>>> from collections import deque
>>> d = deque([1,2,3,4])
>>> d.pop()
4
>>> d
deque([1, 2, 3])</code>

Dengan menggunakan senarai terpaut atau deques, anda boleh melaksanakan struktur data dengan berkesan dalam Python yang mempunyai sifat berfaedah seperti terpaut senarai.

Atas ialah kandungan terperinci Bagaimanakah saya boleh melaksanakan fungsi senarai terpaut dengan berkesan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn