Struktur data menggunakan metode berbeda yang telah ditentukan sebelumnya untuk menyimpan, mengambil, dan menghapus data yang berujung pada pembuatan program yang efisien. Daftar tertaut adalah struktur data populer, yang terdiri dari daftar simpul yang terhubung (atau ditautkan).
Tetapi bagaimana Anda membuat daftar tertaut di Jawa? Mari lihat.
Setiap daftar tertaut dimulai dengan simpul khusus yang sering disebut sebagai "kepala", yang bertanggung jawab untuk menunjuk ke awal daftar setiap saat. Head penting karena setiap node dalam linked list tidak perlu mengikuti penerusnya secara fisik (artinya pendahulu dan penerus tidak harus berdekatan secara fisik).
Seperti setiap struktur data, daftar tertaut memfasilitasi pembuatan, pengambilan, penyisipan, dan penghancuran melalui serangkaian fungsi yang telah ditentukan sebelumnya yang dapat digunakan oleh pengembang mana pun.
Program Java yang dirancang untuk membuat dan memanipulasi daftar tertaut akan memiliki tiga bagian berbeda; kelas node, kelas linked list, dan driver. Meskipun ketiga bagian ini dapat digabungkan dalam satu file, ada prinsip desain dalam ilmu komputer yang dikenal sebagai "pemisahan masalah" yang harus diketahui oleh setiap pengembang.
Prinsip pemisahan kekhawatiran menyatakan bahwa setiap bagian dari kode yang membahas masalah tertentu harus dipisahkan. Prinsip ini akan membantu Anda membuat kode yang lebih bersih (lebih mudah dibaca) dan ideal untuk membuat struktur data.
Langkah pertama dalam membuat linked list di Java adalah membuat kelas node. Kelas simpul harus memiliki dua atribut; salah satu atribut akan mewakili bagian data dari node, sedangkan atribut lainnya akan mewakili bagian yang ditautkan. Kelas node juga harus memiliki konstruktor, getter, dan setter.
Terkait: Pelajari Cara Membuat Kelas di Java
Getter dan setter akan mengizinkan kelas lain (seperti kelas linked list) untuk mengakses berbagai node di dalam linked list.
Contoh Kelas Node
Di bawah ini adalah contoh kelas simpul bagi Anda untuk mendapatkan gambaran tentang apa yang kami maksud:
simpul kelas publik {
Data int pribadi;
Node pribadi NextNode;
//constructor
simpul publik() {
Data = 0;
Node berikutnya = nol;
}
//getter dan setter
publik int getData() {
mengembalikan Data;
}
public void setData (int data) {
Data = data;
}
simpul publik getNextNode() {
kembali NextNode;
}
public void setNextNode (Node nextNode) {
Node berikutnya = Node berikutnya;
}
}
Dalam contoh ini, atribut data akan menyimpan nilai integer. Sekarang setelah Anda memiliki kelas simpul, saatnya untuk beralih ke daftar tertaut.
Di bawah ini adalah contoh daftar tertaut di Jawa.
LinkedList kelas publik {
Kepala Node pribadi;
//constructor
Daftar Tertaut publik() {
Kepala = nol;
}
}
Kode di atas akan membuat kelas daftar tertaut, namun, tanpa berbagai operasinya, kelas dapat dilihat sebagai setara dengan shell kosong. Struktur data daftar tertaut memiliki beberapa operasi yang dapat digunakan untuk mengisinya:
- Sisipkan di bagian depan.
- Sisipkan di tengah.
- Sisipkan di bagian belakang.
Terkait: Cara Membangun Struktur Data Dengan Kelas JavaScript ES6
Kumpulan metode penyisipan daftar tertaut adalah salah satu alasan mengapa pengembang mungkin memilih untuk menggunakan data ini struktur di atas struktur data lain seperti tumpukan (yang hanya memungkinkan penyisipan dan penghapusan dari atas).
Menggunakan Sisipan di Metode Depan
Metode penyisipan di depan, seperti namanya, menyisipkan data baru (atau simpul baru) di bagian depan daftar tertaut.
Sisipkan di Contoh Metode Depan
Di bawah ini adalah contoh bagaimana Anda akan memasukkan data baru di bagian depan daftar Anda.
//menyisipkan simpul di metode depan
public void insertAtFront (kunci int) {
//membuat simpul baru menggunakan kelas simpul
Suhu Node = Node baru();
//periksa apakah Temp node berhasil dibuat
//menetapkan data yang disediakan oleh pengguna untuk itu
if (Suhu != null) {
Temp.setData (kunci);
Temp.setNextNode (null);
//periksa apakah kepala daftar tertaut kosong
//menetapkan node yang baru saja dibuat ke posisi kepala
if (Kepala == null) {
Kepala = Suhu;
}
//jika sebuah node sudah berada di posisi head
//tambahkan simpul baru ke dalamnya dan atur sebagai kepala
lain {
Temp.setNextNode (Kepala);
Kepala = Suhu;
}
}
}
NS sisipkanDiDepan metode dalam contoh di atas memungkinkan pengguna untuk menambahkan node baru ke daftar tertaut yang diberikan.
Menerapkan Sisipan di Contoh Depan
Di bawah ini adalah contoh bagaimana Anda akan menerapkan insert di bagian depan.
Pengemudi kelas publik {
//mengeksekusi program
public static void main (String[] args) {
//buat daftar tertaut baru bernama Daftar
Daftar LinkedList = LinkedList baru();
//tambahkan setiap nilai ke depan daftar tertaut sebagai simpul baru
List.insertAtFront (10);
List.insertAtFront (8);
List.insertAtFront (6);
List.insertAtFront (4);
List.insertAtFront (2);
}
}
NS Pengemudi class (yang merupakan nama yang sering diberikan ke kelas yang dapat dieksekusi di Java), menggunakan kelas LinkedList untuk membuat daftar tertaut dari lima angka genap. Melihat kode di atas seharusnya mudah untuk melihat bahwa angka "2" berada di posisi kepala dalam daftar tertaut. Tapi bagaimana Anda bisa mengkonfirmasi ini?
Menggunakan Metode Tampilan Semua Node
Metode tampilan semua node adalah metode daftar tertaut yang penting. Tanpa itu, pengembang tidak akan dapat melihat node dalam daftar tertaut. Itu berjalan melalui daftar tertaut (mulai dari kepala) mencetak data yang disimpan di setiap simpul yang membentuk daftar.
Tampilkan Semua Contoh Metode Node
Di bawah ini adalah contoh penggunaan metode tampilan semua catatan di Java.
//tampilkan semua metode node
public void displayAllNodes() {
// buat Temp panggilan simpul baru dan tetapkan ke kepala daftar tertaut
// jika kepala memiliki nilai nol maka daftar tertaut kosong
Suhu Node = Kepala;
if (Kepala == nol){
System.out.println("Daftar kosong.");
kembali;
}
System.out.println("Daftar :");
sementara (Suhu != null) {
//mencetak data di setiap node ke console (mulai dari head)
System.out.print (Temp.getData() + " ");
Temp = Temp.getNextNode();
}
}
Sekarang bahwa tampilanSemuaNode metode telah ditambahkan ke Daftar Tertaut kelas Anda dapat melihat daftar tertaut dengan menambahkan satu baris kode ke kelas driver.
Menggunakan Contoh Metode Tampilan Semua Node
Di bawah ini, Anda akan melihat bagaimana Anda akan menggunakan metode tampilan semua simpul.
//cetak simpul dalam daftar tertaut
List.displayAllNodes();
Menjalankan baris kode di atas akan menghasilkan output berikut di konsol:
Daftar:
2 4 6 8 10
Menggunakan Metode Temukan Node
Akan ada contoh ketika pengguna ingin menemukan simpul tertentu dalam daftar tertaut.
Misalnya, tidak praktis bagi bank yang memiliki jutaan pelanggan untuk mencetak semua pelanggan di database mereka ketika mereka hanya perlu melihat detail pelanggan tertentu.
Oleh karena itu, alih-alih menggunakan tampilanSemuaNode metode, metode yang lebih efisien adalah menemukan node tunggal yang berisi data yang diperlukan. Inilah sebabnya mengapa pencarian metode simpul tunggal penting dalam struktur data daftar tertaut.
Temukan Contoh Metode Node
Di bawah ini adalah contoh penggunaan metode find node.
//mencari satu node menggunakan kunci
findNode boolean publik (kunci int) {
//buat simpul baru dan letakkan di kepala daftar tertaut
Suhu Node = Kepala;
//sementara node saat ini tidak kosong
//periksa apakah datanya cocok dengan kunci yang diberikan oleh pengguna
sementara (Suhu != null) {
if (Temp.getData() == kunci) {
System.out.println("Simpul ada dalam daftar");
kembali benar;
}
//pindah ke simpul berikutnya
Temp = Temp.getNextNode();
}
//jika kunci tidak ditemukan dalam daftar tertaut
System.out.println("Node tidak ada dalam daftar");
kembali salah;
}
Dengan tampilanSemuaNode metode, Anda mengkonfirmasi bahwa Daftar Tertaut berisi 5 bilangan genap dari 2 sampai 10. NS temukanNode contoh di atas dapat mengkonfirmasi jika salah satu dari angka genap itu adalah angka 4 hanya dengan memanggil metode di kelas driver dan memberikan angka sebagai parameter.
Menggunakan Contoh Metode Temukan Node
Di bawah ini adalah contoh bagaimana Anda akan menggunakan metode find node dalam praktik.
//periksa apakah sebuah node ada dalam daftar tertaut
List.findNode (4);
Kode di atas akan menghasilkan output berikut di konsol:
Node ada dalam daftar
Menggunakan Metode Hapus Node
Menggunakan contoh bank yang sama dari atas, pelanggan di database bank mungkin ingin menutup rekening mereka. Di sinilah metode delete a node akan berguna. Ini adalah metode daftar tertaut yang paling kompleks.
Metode Delete a Node mencari node tertentu, menghapus node tersebut, dan menautkan node sebelumnya ke node yang mengikuti node yang telah dihapus.
Hapus Contoh Metode Node
Di bawah ini adalah contoh metode delete a node.
public void findAndDelete (kunci int) {
Suhu Node = Kepala;
Simpul sebelumnya = nol;
//periksa apakah node kepala menyimpan data
//dan hapus
if (Temp != null && Temp.getData() == kunci) {
Kepala = Temp.getNextNode();
kembali;
}
//cari node lain dalam daftar
//dan hapus
sementara (Suhu != null) {
if (Temp.getNextNode().getData() == kunci ) {
prev = Temp.getNextNode().getNextNode();
Temp.setNextNode (sebelumnya);
kembali;
}
Temp = Temp.getNextNode();
}
}
Menggunakan Contoh Metode Hapus Node
Di bawah ini adalah contoh penggunaan metode delete a node dalam praktiknya.
//menghapus node yang menyimpan data 4
List.findAndDelete (4);
//cetak semua node dalam daftar tertaut
List.displayAllNodes();
Menggunakan dua baris kode di atas di kelas Driver yang sudah ada sebelumnya akan menghasilkan output berikut di konsol:
Daftar:
2 6 8 10
Jika Anda berhasil sampai ke akhir artikel tutorial ini, Anda akan belajar:
- Cara membuat kelas simpul.
- Cara membuat kelas daftar tertaut.
- Cara mengisi kelas daftar tertaut dengan metode yang telah ditentukan sebelumnya.
- Cara membuat kelas driver dan menggunakan metode daftar tertaut yang berbeda untuk mencapai hasil yang diinginkan.
Daftar tertaut hanyalah salah satu dari banyak struktur data yang dapat Anda gunakan untuk menyimpan, mengambil, dan menghapus data. Karena Anda memiliki semua yang Anda butuhkan untuk memulai, mengapa tidak mencoba contoh ini sendiri di Java?
Belajar bahasa Jawa? Biarkan array menangani data Anda dengan mudah.
Baca Selanjutnya
- Pemrograman
- Jawa
- Pemrograman
- Kiat Pengkodean
Kadeisha Kean adalah Pengembang Perangkat Lunak Full-Stack dan Penulis Teknis/Teknologi. Dia memiliki kemampuan yang berbeda untuk menyederhanakan beberapa konsep teknologi yang paling kompleks; menghasilkan materi yang dapat dengan mudah dipahami oleh setiap pemula teknologi. Dia bersemangat menulis, mengembangkan perangkat lunak yang menarik, dan berkeliling dunia (melalui film dokumenter).
Berlangganan newsletter kami
Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!
Klik di sini untuk berlangganan