


Program Python untuk mendapatkan elemen tengah senarai terpaut, diselesaikan dalam satu lelaran
Senarai terpaut digunakan untuk menyimpan data di lokasi memori yang tidak bersebelahan. Nod yang mengandungi item data dipautkan menggunakan penunjuk. Setiap nod terdiri daripada dua medan. Medan pertama digunakan untuk menyimpan data dan medan kedua mengandungi pautan ke nod seterusnya.
Teknologi keretakan brute force
Untuk mencari elemen tengah senarai terpaut, teknik brute force ialah mencari panjang senarai terpaut dengan mengulangi keseluruhan senarai terpaut sehingga NULL ditemui, kemudian bahagikan panjang dengan 2 untuk mendapatkan elemen tengah daripada indeks senarai terpaut. Selepas mendapat indeks elemen perantaraan, ulang senarai terpaut sekali lagi dari awal dan berhenti apabila indeks yang diperlukan dicapai. Item data pada indeks ini memberikan elemen perantaraan.
Ambil pembolehubah bernama "temp" menunjuk ke HEAD dan mulakan "len" kepada 0
Lelaran ke atas senarai terpaut menggunakan temp sehingga NULL dicapai, menambah "len" sebanyak 1 pada setiap nod.
Selepas mendapat panjang senarai terpaut, mulakan temp kepada HEAD sekali lagi. Lelaran melalui senarai terpaut sehingga len//2.
Menggunakan penunjuk perlahan dan pantas (lelaran tunggal)
Kami akan menggunakan dua penunjuk untuk melintasi senarai terpaut. Satu dipanggil "penunjuk perlahan" dan satu lagi dipanggil "penunjuk cepat".
Penunjuk pantas bergerak dua kali lebih pantas daripada penunjuk perlahan.
Apabila penuding pantas sampai ke penghujung senarai terpaut, penuding perlahan akan berada di nod tengah.
Oleh itu, kita boleh terus mencetak kandungan nod perantaraan.
Contoh
Pertimbangkan senarai pautan di bawah. Unsur tengah ialah 3.

Penunjuk pantas telah mencapai nod terakhir dalam senarai terpaut, dan penunjuk perlahan kini menghala ke nod 3. Oleh itu, 3 ialah elemen tengah senarai terpaut yang diberikan. Sekarang, pertimbangkan 6 nod.

Contoh
Penunjuk pantas telah mencapai NULL dan penunjuk perlahan menghala ke nod ke-4. Oleh itu, unsur tengah ialah 4.
Algoritma
Buat "perlahan" dan "cepat" tuding ke KETUA senarai terpaut.
Naikkan penunjuk cepat sebanyak 2 dan penunjuk perlahan sebanyak 1 sehingga penunjuk cepat dan fast.next tidak sama dengan NULL
Cetak nilai pada penunjuk perlahan.
Kerumitan masa ialah O(n).
class Node: def __init__(self, val): self.val = val self.next = None class LinkedList: def __init__(self): self.head = None def insert_at_the_beginning(self, newVal): newNode = Node(newVal) newNode.next = self.head self.head = newNode def print_middle_element(self): slow=self.head fast=self.head while fast is not None and fast.next is not None: slow=slow.next #slow pointer moves one node fast=fast.next.next #fast pointer moves two nodes print("\n\nthe middle element is ",slow.val) def Print_the_LL(self): temp = self.head if(temp != None): print("The linked list elements are:", end=" ") while (temp != None): print(temp.val, end=" ") temp = temp.next else: print("The list is empty.") newList = LinkedList() newList.insert_at_the_beginning(5) newList.insert_at_the_beginning(4) newList.insert_at_the_beginning(3) newList.insert_at_the_beginning(2) newList.insert_at_the_beginning(1) newList.Print_the_LL() newList.print_middle_element()
Output
The linked list elements are: 1 2 3 4 5 the middle element is 3
Atas ialah kandungan terperinci Program Python untuk mendapatkan elemen tengah senarai terpaut, diselesaikan dalam satu lelaran. 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

Menggunakan Notepad++ untuk menjalankan program Python memerlukan langkah berikut: 1. Pasang pemalam Python 2. Buat fail Python 3. Tetapkan pilihan jalankan;

PyCharm ialah persekitaran pembangunan bersepadu (IDE) Python yang sangat popular. Ia menyediakan pelbagai fungsi dan alatan untuk menjadikan pembangunan Python lebih cekap dan mudah. Artikel ini akan memperkenalkan anda kepada kaedah operasi asas PyCharm dan menyediakan contoh kod khusus untuk membantu pembaca memulakan dengan cepat dan menjadi mahir dalam mengendalikan alat tersebut. 1. Muat turun dan pasang PyCharm Pertama, kita perlu pergi ke laman web rasmi PyCharm (https://www.jetbrains.com/pyc

Adakah PyCharm Community Edition menyokong pemalam yang mencukupi? Perlukan contoh kod khusus Memandangkan bahasa Python semakin digunakan secara meluas dalam bidang pembangunan perisian, PyCharm, sebagai persekitaran pembangunan bersepadu (IDE) Python profesional, digemari oleh pembangun. PyCharm dibahagikan kepada dua versi: versi profesional dan versi komuniti Versi komuniti disediakan secara percuma, tetapi sokongan pemalamnya terhad berbanding versi profesional. Jadi persoalannya, adakah PyCharm Community Edition menyokong pemalam yang mencukupi? Artikel ini akan menggunakan contoh kod khusus untuk

PyCharm ialah persekitaran pembangunan bersepadu Python yang berkuasa yang menyediakan pelbagai fungsi dan alatan untuk membantu pembangun meningkatkan kecekapan. Antaranya, PyInstaller ialah alat yang biasa digunakan yang boleh membungkus kod Python ke dalam fail boleh laku (format EXE) untuk memudahkan berjalan pada mesin tanpa persekitaran Python. Dalam artikel ini, kami akan memperkenalkan cara menggunakan PyInstaller dalam PyCharm untuk membungkus kod Python ke dalam format EXE, dan menyediakan khusus

Proses pembangunan program Python merangkumi langkah-langkah berikut: Analisis keperluan: menjelaskan keperluan perniagaan dan matlamat projek. Reka bentuk: Tentukan seni bina dan struktur data, lukis carta alir atau gunakan corak reka bentuk. Menulis kod: Program dalam Python, mengikut konvensyen pengekodan dan komen dokumentasi. Pengujian: Menulis ujian unit dan integrasi, menjalankan ujian manual. Semak dan Refactor: Semak kod untuk mencari kelemahan dan meningkatkan kebolehbacaan. Sebarkan: Sebarkan kod ke persekitaran sasaran. Penyelenggaraan: Betulkan pepijat, tingkatkan fungsi dan pantau kemas kini.

Tutorial pemasangan dan konfigurasi kelalang: Alat untuk membina aplikasi Web Python dengan mudah, contoh kod khusus diperlukan Pengenalan: Dengan peningkatan populariti Python, pembangunan Web telah menjadi salah satu kemahiran yang diperlukan untuk pengaturcara Python. Untuk menjalankan pembangunan web dalam Python, kita perlu memilih rangka kerja web yang sesuai. Di antara banyak rangka kerja Web Python, Flask ialah rangka kerja yang ringkas, mudah digunakan dan fleksibel yang digemari oleh pembangun. Artikel ini akan memperkenalkan pemasangan rangka kerja Flask,

Terdapat dua cara untuk menjalankan program dalam Python: 1. Menggunakan penterjemah Python 2. Memanggil skrip secara langsung. Langkah-langkah khusus termasuk: ① Buat fail skrip Python ② Buka terminal atau command prompt ③ Navigasi ke direktori skrip ④ Gunakan kaedah yang sepadan untuk menjalankan skrip;

Apa itu GIL? GIL ialah singkatan kunci penterjemah global, yang merupakan konsep penting penterjemah python. GIL memastikan bahawa penterjemah Python hanya boleh melaksanakan satu utas pada satu masa. Ini bermakna pada bila-bila masa, hanya satu utas boleh menjalankan kod bait Python. Benang lain mesti menunggu GIL tersedia sebelum meneruskan pelaksanaan. Bagaimanakah GIL berfungsi? GIL ialah kunci yang ditulis dalam C dan terletak dalam penterjemah Python. Apabila benang ingin melaksanakan kod bait Python, ia mesti mendapatkan GIL terlebih dahulu. Jika GIL sudah dipegang oleh benang lain, benang itu mesti menunggu GIL tersedia sebelum meneruskan pelaksanaan. Apakah kesan GIL pada program Python? GIL untuk Python
