Jadual Kandungan
Teknologi keretakan brute force
Menggunakan penunjuk perlahan dan pantas (lelaran tunggal)
Contoh
Algoritma
Output
Rumah pembangunan bahagian belakang Tutorial Python Program Python untuk mendapatkan elemen tengah senarai terpaut, diselesaikan dalam satu lelaran

Program Python untuk mendapatkan elemen tengah senarai terpaut, diselesaikan dalam satu lelaran

Sep 14, 2023 am 11:21 AM
senarai terpaut program python unsur tengah

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.

Program Python untuk mendapatkan elemen tengah senarai terpaut, diselesaikan dalam satu lelaran

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.

Program Python untuk mendapatkan elemen tengah senarai terpaut, diselesaikan dalam satu lelaran

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()
Salin selepas log masuk

Output

The linked list elements are: 1 2 3 4 5 

the middle element is  3
Salin selepas log masuk

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!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menjalankan program python dalam notepad++ Bagaimana untuk menjalankan program python dalam notepad++ Apr 08, 2024 am 03:24 AM

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

Tutorial penggunaan PyCharm: membimbing anda secara terperinci untuk menjalankan operasi Tutorial penggunaan PyCharm: membimbing anda secara terperinci untuk menjalankan operasi Feb 26, 2024 pm 05:51 PM

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? Adakah PyCharm Community Edition menyokong pemalam yang mencukupi? Feb 20, 2024 pm 04:42 PM

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

Tutorial Lanjutan PyCharm: Gunakan PyInstaller untuk membungkus kod ke dalam format EXE Tutorial Lanjutan PyCharm: Gunakan PyInstaller untuk membungkus kod ke dalam format EXE Feb 20, 2024 am 09:34 AM

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 proses pembangunan program python Apr 20, 2024 pm 09:22 PM

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 Tutorial pemasangan dan konfigurasi kelalang: alat untuk membina aplikasi web Python dengan mudah Feb 20, 2024 pm 11:12 PM

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,

Bagaimana untuk menjalankan program python selepas menulisnya Bagaimana untuk menjalankan program python selepas menulisnya Apr 20, 2024 pm 08:59 PM

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;

Bermula dengan Python GIL: Cara memahami dan menggunakan kunci penterjemah global Bermula dengan Python GIL: Cara memahami dan menggunakan kunci penterjemah global Feb 27, 2024 am 09:10 AM

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

See all articles