Java Doubly Linked List ialah sejenis Senarai Terpaut di mana setiap nod selain daripada menyimpan data mempunyai dua pautan. Pautan pertama menghala ke nod sebelumnya dan pautan lain menghala ke nod seterusnya dalam senarai. Senarai Pautan Berganda, juga disingkatkan sebagai DLL adalah seperti Senarai Pautan Tunggal. Kedua-dua senarai Terpaut mengandungi penuding ke nod seterusnya dan medan data untuk mewakili nilai sebenar yang akan disimpan dalam nod. Perbezaan utama ialah DLL mengandungi penunjuk ke nod sebelumnya dalam senarai iaitu nod dalam DLL menyedari kedua-dua nod sebelumnya dan seterusnya. Dalam artikel ini, kita akan melihat Senarai Berganda Berkaitan di Java, meneroka beberapa contoh dan mengetahui Pelaksanaannya.
IKLAN Kursus Popular dalam kategori ini JAVA MASTERY - Pengkhususan | 78 Siri Kursus | 15 Ujian Olok-olokMulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Tiada sintaks tertentu untuk senarai Doubly Linked di Java, tetapi kita akan melihat Cara mengisytiharkan Doubly Linked List di Java. Sebelum melihat pengisytiharan Senarai Berganda Berkait, mari kita lihat Konsep di sebalik pelaksanaan Senarai Berganda Berganda.
Nod dalam Senarai Berganda Berpaut:
|
Data | Nod Seterusnya |
Di sini Nod Sebelum dan Nod Seterusnya masing-masing adalah penunjuk kepada elemen nod sebelumnya dan seterusnya. ‘Data’ ialah elemen sebenar tempat data disimpan.
Di bawah adalah beberapa istilah penting yang perlu kita fahami,
Pengisytiharan Nod untuk Senarai Berganda Di Jawa:
class Node { public int data; public Node prev; public Node next; public void displayData() { //content of the function} }
Seperti yang kita lihat terdapat pengisytiharan tambahan atau rujukan (Nod prev) dalam kes Senarai Berganda Berganda.
Di bawah ialah operasi asas yang tersedia untuk Senarai Berganda,
Di bawah ialah contoh berbeza bagi Senarai Berganda Berganda Java:
Kod:
public class DLL { class Node{ public int data; public Node prevNode; public Node nextNode; public Node(int data) { this.data = data; } } Node headNode, tailNode = null; public void addDLLNode(int data) { Node newDLLNode = new Node(data); if(headNode == null) { headNode = tailNode = newDLLNode; headNode.prevNode = null; tailNode.nextNode = null; } else { tailNode.nextNode = newDLLNode; newDLLNode.prevNode = tailNode; tailNode = newDLLNode; tailNode.nextNode = null; } } public void displayNode() { Node currentNode = headNode; if(headNode == null) { System.out.println("Doubly Linked List is empty"); return; } System.out.println("Nodes in Doubly Linked List: "); while(currentNode != null) { System.out.print(currentNode.data + " "); currentNode = currentNode.nextNode; } } public static void main(String[] args) { DLL dLinkedList = new DLL(); dLinkedList.addDLLNode(9); dLinkedList.addDLLNode(7); dLinkedList.addDLLNode(5); dLinkedList.addDLLNode(3); dLinkedList.addDLLNode(1); dLinkedList.addDLLNode(3); dLinkedList.addDLLNode(5); dLinkedList.addDLLNode(7); dLinkedList.displayNode(); } }
Output:
Jadi di sini kami mencipta kelas Node untuk mengisytiharkan senarai Berganda Berpaut dan memaparkan nilai DLL.
Kod:
public class DLL { class Node{ public int data; public Node prevNode; public Node nextNode; public Node(int data) { this.data = data; } } public void displayNode() { Node tempNode = headNode; while (tempNode != null) { System.out.print(tempNode.data + "–>"); tempNode = tempNode.nextNode; } System.out.println("END"); } Node headNode, tailNode = null; public void addNode(int data) { Node newNode = new Node(data); if(headNode == null) { headNode = tailNode = newNode; headNode.prevNode = null; tailNode.nextNode = null; } else { tailNode.nextNode = newNode; newNode.prevNode = tailNode; tailNode = newNode; tailNode.nextNode = null; } } public void deleteInitialNode() { if(headNode == null) { System.out.println("Doubly Linked List is empty"); return; } else { if(headNode != tailNode) { headNode = headNode.nextNode; } else { headNode = tailNode = null; } } } void printNode() { Node currNode = headNode; if(headNode == null) { System.out.println("Doubly Linked List is empty"); return; } while(currNode != null) { System.out.print(currNode.data + " "); currNode = currNode.nextNode; } System.out.println(); } public static void main(String[] args) { DLL doublyLL = new DLL(); doublyLL.addNode(3); doublyLL.addNode(5); doublyLL.addNode(7); doublyLL.addNode(9); doublyLL.addNode(11); System.out.println("Doubly linked list: "); doublyLL.printNode(); doublyLL.addNode(15); doublyLL.addNode(17); doublyLL.addNode(19); doublyLL.deleteInitialNode(); doublyLL.addNode(21); System.out.println("Doubly Linked List after deleting at the beginning: "); doublyLL.printNode(); } }
Output:
Jadi di sini, nod dipadamkan pada permulaan senarai terpaut iaitu Nod 3 dipadam/ dialih keluar.
DLL boleh dilalui dalam arah ke hadapan dan ke belakang. Operasi padam dalam DLL boleh menjadi lebih cekap jika penunjuk nod yang akan dipadam diberikan. Setiap Nod dalam DLL memerlukan ruang tambahan untuk penunjuk sebelumnya. Semua operasi memerlukan penunjuk tambahan untuk dikekalkan.
Dengan ini, kami akan menyimpulkan topik kami "Senarai Berganda Berganda Java". Kami telah melihat Apakah Java Doubly Linked List dan bagaimana ia dilaksanakan dalam pengaturcaraan Java dengan beberapa contoh. Kami juga telah melihat Algoritma untuk Senarai Berganda Berganda dan telah menyenaraikan beberapa operasi yang boleh digunakan untuk DLL. Kami telah melaksanakan Sisipan dan padam pada operasi pertama, begitu juga, terdapat operasi lain juga tersedia yang boleh anda kerjakan.
Atas ialah kandungan terperinci Senarai Berkaitan Berganda Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!