Pengenalan Menggunakan Daftar Terpaut di Java

Pengenalan Menggunakan Daftar Terpaut di Java

Struktur data menggunakan kaedah yang ditentukan sebelumnya untuk menyimpan, mengambil, dan menghapus data yang memuncak dalam pembuatan program yang cekap. Senarai terpaut adalah struktur data yang popular, yang terdiri daripada senarai nod yang disambungkan (atau dihubungkan).





Tetapi bagaimana anda membuat senarai terpaut di Java? Mari kita lihat.





Bagaimana Senarai Terpaut Berfungsi?

Setiap senarai yang dihubungkan bermula dengan simpul khas yang sering disebut sebagai 'kepala', yang mempunyai tanggungjawab untuk menunjukkan permulaan senarai setiap saat. Tajuknya penting kerana setiap simpul dalam senarai terpaut tidak perlu mengikuti penggantinya secara fizikal (yang bermaksud bahawa pendahulu dan penerus tidak perlu berdekatan secara fizikal).





Seperti setiap struktur data, senarai yang dipautkan memudahkan pembuatan, pengambilan, penyisipan, dan pemusnahan melalui sekumpulan fungsi yang telah ditentukan yang dapat digunakan oleh mana-mana pembangun.

Membuat Senarai Terpaut di Java

Program Java yang dirancang untuk membuat dan memanipulasi senarai terpaut akan mempunyai tiga bahagian khas; kelas nod, kelas senarai terpaut dan pemacu. Walaupun ketiga-tiga bahagian ini dapat digabungkan dalam satu fail, ada prinsip reka bentuk dalam sains komputer yang dikenali sebagai 'pemisahan masalah' yang harus diketahui oleh setiap pembangun.



Prinsip pemisahan keprihatinan menentukan bahawa setiap bahagian kod yang menangani masalah tertentu harus dipisahkan. Prinsip ini akan membantu anda membuat kod yang lebih bersih (lebih mudah dibaca) dan sangat sesuai untuk membuat struktur data.

Langkah pertama dalam membuat senarai terpaut di Java adalah membuat kelas nod. Kelas nod harus mempunyai dua atribut; salah satu atribut akan mewakili bahagian data nod, sementara atribut yang lain akan mewakili bahagian yang dihubungkan. Kelas nod juga harus mempunyai konstruktor, getter, dan setter.





Berkaitan: Pelajari Cara Membuat Kelas di Java

Penerima dan pengatur akan membenarkan kelas lain (seperti kelas senarai terpaut) untuk mengakses pelbagai nod dalam senarai yang dipautkan.





Contoh Kelas Node

Berikut adalah contoh kelas nod untuk anda mendapatkan idea tentang maksud kami:


public class Node {
private int Data;
private Node NextNode;
//constructor
public Node() {
Data = 0;
NextNode = null;
}
//getters and setters
public int getData() {
return Data;
}
public void setData(int data) {
Data = data;
}
public Node getNextNode() {
return NextNode;
}
public void setNextNode(Node nextNode) {
NextNode = nextNode;
}
}

Dalam contoh ini, atribut data akan menyimpan nilai integer. Sekarang anda mempunyai kelas simpul, sudah tiba masanya untuk beralih ke senarai terpaut.

Contoh Senarai Terpaut

Berikut adalah contoh senarai terpaut di Java.

public class LinkedList {
private Node Head;
//constructor
public LinkedList() {
Head = null;
}
}

Kod di atas akan membuat kelas senarai terpaut, namun, tanpa pelbagai operasinya, kelas itu dapat dilihat sebagai setara dengan shell kosong. Struktur data senarai terpaut mempunyai beberapa operasi yang dapat digunakan untuk mengisi:

  • Masukkan di bahagian depan.
  • Masukkan di tengah.
  • Masukkan di bahagian belakang.

Berkaitan: Cara Membina Struktur Data Dengan Kelas ES6 JavaScript

Pengumpulan senarai penyisipan kaedah penyisipan adalah salah satu sebab mengapa pembangun mungkin memilih untuk menggunakan struktur data ini berbanding struktur data lain seperti tumpukan (yang hanya membenarkan penyisipan dan penghapusan dari atas).

Menggunakan Kaedah Sisipkan di Depan

Sisipan di kaedah depan, seperti namanya, memasukkan data baru (atau nod baru) di bahagian depan senarai terpaut.

Masukkan pada Contoh Kaedah Depan

Berikut adalah contoh bagaimana anda memasukkan data baru di bahagian depan senarai anda.

//insert node at front method
public void insertAtFront(int key) {
//create a new node using the node class
Node Temp = new Node();
//check if the Temp node was successfully created
//assign the data that was provides by the user to it
if(Temp != null) {
Temp.setData(key);
Temp.setNextNode(null);

//check if the head of the linked list is empty
//assign the node that was just created to the head position
if(Head == null) {
Head = Temp;
}
//if a node is already at the head position
//add the new node to it and set it as the head
else {
Temp.setNextNode(Head);
Head = Temp;
}
}
}

The masukkanAtFront kaedah dalam contoh di atas membolehkan pengguna menambah nod baru ke senarai terpaut yang diberikan.

Mengaplikasikan Sisipkan di Bahagian Depan Contoh

Di bawah ini adalah contoh bagaimana anda menggunakan sisipan di bahagian depan.

public class Driver {
//executes the program
public static void main(String[] args) {
//create a new linked list called List
LinkedList List = new LinkedList();
//add each value to the front of the linked list as a new node
List.insertAtFront(10);
List.insertAtFront(8);
List.insertAtFront(6);
List.insertAtFront(4);
List.insertAtFront(2);
}
}

The Pemandu class (yang merupakan nama yang sering diberikan ke kelas yang dapat dilaksanakan di Java), menggunakan kelas LinkedList untuk membuat senarai lima nombor genap yang dipautkan. Melihat kod di atas semestinya mudah untuk melihat bahawa nombor '2' berada di kedudukan kepala dalam senarai terpaut. Tetapi bagaimana anda boleh mengesahkan ini?

ikon bateri tidak dipaparkan di tingkap 10

Menggunakan Kaedah Paparkan Nod

Kaedah paparan semua nod adalah kaedah senarai terpaut penting. Tanpa itu, pembangun tidak akan dapat melihat nod dalam senarai yang dipautkan. Ia bergerak melalui senarai terpaut (bermula dari kepala) mencetak data yang disimpan di setiap nod yang membentuk senarai.

Paparkan Contoh Kaedah Semua Nod

Di bawah ini adalah contoh penggunaan kaedah display all note di Java.

//display all nodes method
public void displayAllNodes() {
//create a new node call Temp and assign it to the head of the linked list
//if the head has a null value then the linked list is empty
Node Temp = Head;
if (Head == null){
System.out.println('The list is empty.');
return;
}
System.out.println('The List:');

while(Temp != null) {
//print the data in each node to the console(starting from the head)
System.out.print(Temp.getData() + ' ');
Temp = Temp.getNextNode();
}
}

Sekarang bahawa displayAllNodes kaedah telah ditambahkan ke Senarai Terpaut kelas anda boleh melihat senarai terpaut dengan menambahkan satu baris kod ke kelas pemandu.

Menggunakan Contoh Kaedah Paparkan Nod

Di bawah ini, anda akan melihat bagaimana anda menggunakan kaedah paparan semua nod.

//print the nodes in a linked list
List.displayAllNodes();

Melaksanakan garis kod di atas akan menghasilkan output berikut di konsol:

Senarai:

2 4 6 8 10

Menggunakan Kaedah Cari Node

Akan ada keadaan ketika pengguna ingin mencari simpul tertentu dalam senarai terpaut.

Sebagai contoh, tidak praktikal bagi bank yang mempunyai berjuta-juta pelanggan untuk mencetak semua pelanggan dalam pangkalan data mereka apabila mereka hanya perlu melihat perincian pelanggan tertentu.

Oleh itu, bukannya menggunakan displayAllNodes kaedah, kaedah yang lebih cekap adalah mencari simpul tunggal yang mengandungi data yang diperlukan. Inilah sebabnya mengapa kaedah mencari satu nod penting dalam struktur data senarai terpaut.

Cari Kaedah Kaedah Node

Berikut adalah contoh penggunaan kaedah cari simpul.

//search for a single node using a key
public boolean findNode(int key) {
//create a new node and place it at the head of the linked list
Node Temp = Head;
//while the current node is not empty
//check if its data matches the key provided by the user
while (Temp != null) {
if (Temp.getData() == key) {
System.out.println('The node is in the list');
return true;
}
//move to the next node
Temp = Temp.getNextNode();
}
//if the key was not found in the linked list
System.out.println('The node is not in the list');
return false;
}

Dengan displayAllNodes kaedah, anda mengesahkan bahawa Senarai Terpaut mengandungi 5 nombor genap dari 2 hingga 10. The cariNode contoh di atas dapat mengesahkan jika salah satu nombor genap itu adalah angka 4 dengan hanya memanggil kaedah di kelas pemandu dan memberikan nombor sebagai parameter.

Menggunakan Contoh Kaedah Cari Node

Berikut adalah contoh bagaimana anda menggunakan kaedah cari simpul dalam praktiknya.

//check if a node is in the linked list
List.findNode(4);

Kod di atas akan menghasilkan output berikut di konsol:

The node is in the list

Menggunakan Kaedah Hapus Node

Dengan menggunakan contoh bank yang sama dari atas, pelanggan di pangkalan data bank mungkin ingin menutup akaun mereka. Di sinilah kaedah delete node akan berguna. Ini adalah kaedah senarai terpaut yang paling kompleks.

Kaedah Delete a Node mencari node tertentu, menghapus node itu, dan menghubungkan simpul sebelumnya dengan node yang mengikuti nod yang telah dihapuskan.

Padamkan Contoh Kaedah Node

Berikut adalah contoh kaedah delete a node.

public void findAndDelete(int key) {
Node Temp = Head;
Node prev = null;
//check if the head node holds the data
//and delete it
if (Temp != null && Temp.getData() == key) {
Head = Temp.getNextNode();
return;
}
//search the other nodes in the list
//and delete it
while (Temp != null) {
if (Temp.getNextNode().getData() == key ) {
prev = Temp.getNextNode().getNextNode();
Temp.setNextNode(prev);
return;
}
Temp = Temp.getNextNode();
}
}

Menggunakan Contoh Kaedah Hapus Node

Berikut adalah contoh penggunaan kaedah delete a node dalam praktiknya.

bolehkah saya menonton instagram secara langsung di komputer saya
//delete the node that holds the data 4
List.findAndDelete(4);
//print all nodes in the linked list
List.displayAllNodes();

Menggunakan dua baris kod di atas dalam kelas Driver yang sudah ada akan menghasilkan output berikut di konsol:

The List:
2 6 8 10

Kini Anda Boleh Membuat Daftar Terpaut di Java

Sekiranya anda berjaya sampai ke akhir artikel tutorial ini, anda akan mengetahui:

  • Cara membuat kelas nod.
  • Cara membuat kelas senarai terpaut.
  • Cara mengisi kelas senarai terpaut dengan kaedahnya yang telah ditentukan.
  • Cara membuat kelas pemandu dan menggunakan kaedah senarai terpaut yang berbeza untuk mencapai hasil yang diinginkan.

Senarai terpaut adalah salah satu daripada banyak struktur data yang boleh anda gunakan untuk menyimpan, mengambil dan memadam data. Oleh kerana anda mempunyai semua yang anda perlukan untuk memulakan, mengapa tidak mencuba contoh ini sendiri di Jawa?

Berkongsi Berkongsi Tweet E-mel Cara Membuat dan Melakukan Operasi pada Array di Java

Belajar Java? Biarkan susunan mengendalikan data anda dengan mudah.

Baca Seterusnya
Topik-topik yang berkaitan
  • Pengaturcaraan
  • Jawa
  • Pengaturcaraan
  • Petua Pengekodan
Mengenai Pengarang Kadeisha Kean(21 Artikel Diterbitkan)

Kadeisha Kean adalah Pembangun Perisian Penuh dan Penulis Teknikal / Teknologi. Dia mempunyai kemampuan berbeza untuk menyederhanakan beberapa konsep teknologi yang paling kompleks; menghasilkan bahan yang dapat difahami dengan mudah oleh mana-mana pemula teknologi. Dia minat menulis, mengembangkan perisian yang menarik, dan menjelajah dunia (melalui dokumentari).

Lagi Dari Kadeisha Kean

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan