Jadual Kandungan
Algoritma
Contoh: Laksanakan algoritma di atas menggunakan JavaScript
Kesimpulan
Rumah hujung hadapan web tutorial js Program JavaScript untuk mencari elemen dalam senarai terpaut

Program JavaScript untuk mencari elemen dalam senarai terpaut

Sep 02, 2023 pm 05:45 PM

用于在链接列表中搜索元素的 JavaScript 程序

Senarai terpaut ialah struktur data linear di mana setiap elemen (juga dipanggil nod) mengandungi nilai data dan rujukan kepada nod seterusnya dalam senarai. Operasi biasa pada senarai terpaut adalah untuk mencari elemen tertentu. Ini melibatkan berjalan melalui senarai dan membandingkan nilai data setiap nod dengan elemen sasaran sehingga padanan ditemui.

Berikut ialah contoh senarai pautan yang akan kami gunakan sepanjang artikel ini -

10 -> 20 -> 30 -> 40 -> Kosong

Dalam senarai terpaut ini, setiap nod mengandungi nilai dan anak panah menunjukkan nod seterusnya dalam jujukan. Senarai ini bermula dengan nod kepala, yang mengandungi nilai 10, dan berakhir dengan nod ekor, yang mengandungi nilai 40 dan menunjuk ke nol. Kami akan menggunakan senarai terpaut ini untuk menunjukkan cara mencari elemen dalam senarai terpaut menggunakan JavaScript.

Jom lihat contoh di bawah -

Linked list: 10 -> 20 -> 30 -> 40 -> null
Input: 40
Output: Element found at index 3
Input: 10
Output: Element found at index 0
Input: null
Output: Element not found
Salin selepas log masuk

Sekarang mari kita bincangkan algoritma untuk membuat senarai terpaut dalam JavaScript.

Algoritma

Langkah 1 - Tentukan kelas Nod dengan dua sifat: nilai dan seterusnya. Atribut nilai mewakili data yang disimpan dalam nod, dan atribut seterusnya ialah rujukan kepada nod seterusnya dalam senarai terpaut.

Langkah 2 - Tentukan kelas LinkedList dengan tiga sifat: kepala, ekor dan panjang. Atribut kepala mewakili nod pertama dalam senarai terpaut, atribut ekor mewakili nod terakhir dalam senarai terpaut, dan atribut panjang mewakili bilangan nod dalam senarai terpaut.

Langkah 3 - Tentukan kaedah bernama - tambah pada kelas LinkedList yang mengambil nilai sebagai parameter. Kaedah tambah harus mencipta nod baharu dengan nilai yang diberikan dan menambahnya pada penghujung senarai terpaut.

Langkah 4 - Tentukan kaedah yang dipanggil "alih keluar" untuk kelas LinkedList yang mengambil nilai sebagai parameter. Kaedah alih keluar harus mengalih keluar nod pertama dengan nilai yang diberikan dalam senarai terpaut.

Langkah 5 - Tentukan kaedah yang dipanggil carian untuk kelas LinkedList yang mengambil nilai sebagai parameter. Kaedah carian harus mengembalikan nod pertama dalam senarai terpaut dengan nilai yang diberikan, atau batal jika nod tidak ditemui.

Langkah 6 - Tentukan kaedah yang dipanggil terbalik untuk kelas LinkedList, yang digunakan untuk membalikkan susunan nod dalam senarai terpaut.

Contoh: Laksanakan algoritma di atas menggunakan JavaScript

Atur cara berikut mentakrifkan kelas Node dan kelas LinkedList. Kelas Node mencipta nod baharu menggunakan nilai data yang diberikan dan rujukan kepada nod seterusnya dalam senarai. Kelas LinkedList mencipta senarai terpaut baharu dengan nod kepala pada mulanya menghala ke nol dan sifat saiz ditetapkan kepada 0. Kaedah tambah menambah nod baharu pada penghujung senarai terpaut. Kaedah carian merentasi senarai terpaut dan mengembalikan indeks elemen jika ditemui, atau mesej jika tidak ditemui. Akhir sekali, program mencipta senarai terpaut baharu, menambah elemen padanya dan mencari elemen tertentu.

// Define the Node class for a singly linked list
class Node {
   constructor(data) {
      this.data = data;
      this.next = null;
   }
}
// Define the LinkedList class
class LinkedList {
   constructor() {
      this.head = null;
      this.size = 0;
   }
   // Add an element to the linked list
   add(element) {
      const node = new Node(element);
      // If the linked list is empty, set the new node as the head
      if (this.head === null) {
         this.head = node;
      } else {
         // Traverse to the end of the linked list and add the new node
         let current = this.head;
         while (current.next !== null) {
            current = current.next;
         }
         current.next = node;
      }
      this.size++;
   }
   // Search for an element in the linked list
   search(element) {
      let current = this.head;
      let index = 0;
      // Traverse through the linked list until the element is found
      while (current !== null) {
         if (current.data === element) {
            return `Element found at index ${index}`;
         }
         current = current.next;
         index++;
      }
      return "Element not found";
   }
}
// Create a new linked list
const ll = new LinkedList();
// Add elements to the linked list
ll.add(10);
ll.add(20);
ll.add(30);
ll.add(40);
ll.add(50);
// Search for an element in the linked list
const result = ll.search(30);
console.log(result); 
Salin selepas log masuk

Kesimpulan

Prosedur untuk mencari elemen dalam senarai terpaut menggunakan JavaScript melibatkan mencipta kelas "LinkedList" yang mentakrifkan kaedah untuk menambah elemen pada senarai dan untuk mencari elemen dalam senarai. Program ini menggunakan gelung sementara untuk melintasi senarai terpaut dan membandingkan elemen data dalam setiap nod dengan elemen yang dicari. Jika elemen ditemui, atur cara mengembalikan indeks nod, jika elemen tidak dijumpai, atur cara mengembalikan "Elemen tidak dijumpai".

Atas ialah kandungan terperinci Program JavaScript untuk mencari elemen dalam senarai terpaut. 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)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
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)

Ganti aksara rentetan dalam javascript Ganti aksara rentetan dalam javascript Mar 11, 2025 am 12:07 AM

Penjelasan terperinci mengenai kaedah penggantian rentetan javascript dan Soalan Lazim Artikel ini akan meneroka dua cara untuk menggantikan watak rentetan dalam JavaScript: Kod JavaScript dalaman dan HTML dalaman untuk laman web. Ganti rentetan di dalam kod JavaScript Cara yang paling langsung ialah menggunakan kaedah pengganti (): str = str.replace ("cari", "ganti"); Kaedah ini hanya menggantikan perlawanan pertama. Untuk menggantikan semua perlawanan, gunakan ungkapan biasa dan tambahkan bendera global g: str = str.replace (/fi

Bina Aplikasi Web Ajax anda sendiri Bina Aplikasi Web Ajax anda sendiri Mar 09, 2025 am 12:11 AM

Jadi di sini anda, bersedia untuk mempelajari semua perkara ini yang dipanggil Ajax. Tetapi, apa sebenarnya? Istilah Ajax merujuk kepada kumpulan teknologi longgar yang digunakan untuk membuat kandungan web yang dinamik dan interaktif. Istilah Ajax, yang asalnya dicipta oleh Jesse J

Bagaimana saya membuat dan menerbitkan perpustakaan JavaScript saya sendiri? Bagaimana saya membuat dan menerbitkan perpustakaan JavaScript saya sendiri? Mar 18, 2025 pm 03:12 PM

Artikel membincangkan membuat, menerbitkan, dan mengekalkan perpustakaan JavaScript, memberi tumpuan kepada perancangan, pembangunan, ujian, dokumentasi, dan strategi promosi.

Bagaimanakah saya mengoptimumkan kod JavaScript untuk prestasi dalam penyemak imbas? Bagaimanakah saya mengoptimumkan kod JavaScript untuk prestasi dalam penyemak imbas? Mar 18, 2025 pm 03:14 PM

Artikel ini membincangkan strategi untuk mengoptimumkan prestasi JavaScript dalam pelayar, memberi tumpuan kepada mengurangkan masa pelaksanaan dan meminimumkan kesan pada kelajuan beban halaman.

kesan matriks jQuery kesan matriks jQuery Mar 10, 2025 am 12:52 AM

Bawa kesan filem matriks ke halaman anda! Ini adalah plugin jQuery yang sejuk berdasarkan filem terkenal "The Matrix". Plugin mensimulasikan kesan aksara hijau klasik dalam filem, dan hanya pilih gambar dan plugin akan mengubahnya menjadi gambar gaya matriks yang diisi dengan aksara angka. Datang dan cuba, sangat menarik! Bagaimana ia berfungsi Plugin memuat imej ke kanvas dan membaca nilai piksel dan warna: data = ctx.getimagedata (x, y, settings.grainsize, settings.grainsize) .data Plugin dengan bijak membaca kawasan segi empat tepat gambar dan menggunakan jQuery untuk mengira warna purata setiap kawasan. Kemudian, gunakan

Bagaimanakah saya boleh debug kod javascript dengan berkesan menggunakan alat pemaju pelayar? Bagaimanakah saya boleh debug kod javascript dengan berkesan menggunakan alat pemaju pelayar? Mar 18, 2025 pm 03:16 PM

Artikel ini membincangkan debugging JavaScript yang berkesan menggunakan alat pemaju pelayar, memberi tumpuan kepada menetapkan titik putus, menggunakan konsol, dan menganalisis prestasi.

Cara Membina Slider JQuery Mudah Cara Membina Slider JQuery Mudah Mar 11, 2025 am 12:19 AM

Artikel ini akan membimbing anda untuk membuat karusel gambar mudah menggunakan perpustakaan jQuery. Kami akan menggunakan perpustakaan BXSlider, yang dibina di atas jQuery dan menyediakan banyak pilihan konfigurasi untuk menubuhkan karusel. Pada masa kini, Gambar Carousel telah menjadi ciri yang mesti ada di laman web - satu gambar lebih baik daripada seribu perkataan! Selepas membuat keputusan untuk menggunakan karusel gambar, soalan seterusnya adalah bagaimana untuk menciptanya. Pertama, anda perlu mengumpul gambar-gambar resolusi tinggi yang berkualiti tinggi. Seterusnya, anda perlu membuat karusel gambar menggunakan HTML dan beberapa kod JavaScript. Terdapat banyak perpustakaan di web yang dapat membantu anda membuat karusel dengan cara yang berbeza. Kami akan menggunakan Perpustakaan BXSlider Sumber Terbuka. Perpustakaan BXSlider menyokong reka bentuk responsif, jadi karusel yang dibina dengan perpustakaan ini dapat disesuaikan dengan mana -mana

Cara memuat naik dan memuat turun fail CSV dengan sudut Cara memuat naik dan memuat turun fail CSV dengan sudut Mar 10, 2025 am 01:01 AM

Set data sangat penting dalam membina model API dan pelbagai proses perniagaan. Inilah sebabnya mengapa mengimport dan mengeksport CSV adalah fungsi yang sering diperlukan. Dalam tutorial ini, anda akan belajar cara memuat turun dan mengimport fail CSV dalam sudut

See all articles