Danh sách được liên kết trong Java: Tất cả những gì bạn cần biết về nó – java danh sách liên kết là gì

Danh sách được liên kết trong Java là một cấu trúc dữ liệu động có kích thước tăng lên khi bạn thêm các phần tử và giảm khi bạn xóa các phần tử khỏi danh sách. Đọc tiếp!

Bạn đang xem : java danh sách được liên kết là gì

Cấu trúc dữ liệu tuyến tính được sử dụng để lưu trữ các phần tử ở các vị trí liền kề được gọi là Danh sách được Liên kết trong Java. Nó có địa chỉ và con trỏ được sử dụng để liên kết các phần tử và mỗi phần tử trong danh sách liên kết bao gồm hai phần, đó là phần dữ liệu và phần địa chỉ. Phần dữ liệu là giá trị của phần tử và phần địa chỉ bao gồm các con trỏ và địa chỉ được sử dụng để liên kết các phần tử. Mỗi phần tử trong danh sách được gọi là một nút.

Cú pháp để xác định một danh sách được Liên kết trong Java như sau:

LinkedList & lt; data_type & gt; linkedlistname = new LinkedList & lt; data_type & gt; ();

trong đó data_type là kiểu dữ liệu của các phần tử sẽ được lưu trữ trong danh sách được liên kết,

linkedlistname là tên của danh sách. đã liên kết .

Việc sử dụng danh sách liên kết cho phép chèn và xóa động các phần tử vào danh sách được liên kết. Do tính năng này, danh sách được liên kết được ưu tiên hơn so với mảng.

Học từ A-Z về Java chưa từng có

Danh sách được liên kết mở rộng đến Danh sách tuần tự trừu tượng, danh sách này sẽ triển khai một danh sách mở rộng giao diện bộ sưu tập, mở rộng hơn nữa giao diện Có thể lặp lại. Danh sách được liên kết triển khai giao diện deque mở rộng giao diện Hàng đợi, sau đó mở rộng giao diện tập hợp, mở rộng thêm giao diện Có thể lặp lại.

Có nhiều loại danh sách được liên kết. Họ là:

  • Danh sách được Liên kết Số ít
  • Danh sách được Liên kết gấp đôi
  • Danh sách được Liên kết theo Hình tròn

Danh sách được liên kết số ít

LinkedListInJava_1

  • Loại danh sách được liên kết bao gồm một chuỗi các nút trong đó mỗi nút bao gồm dữ liệu và một liên kết đến nút tiếp theo, có thể được chuyển từ nút đầu tiên của danh sách (còn được gọi là phần đầu) đến nút cuối cùng của danh sách (còn được gọi là Đuôi) và đơn hướng được gọi là danh sách liên kết Singly.
  • Hình trên minh họa một danh sách được liên kết đơn lẻ.
  • Mỗi phần tử trong danh sách được gọi là một nút.
  • Một nút được tạo thành từ hai phần, đó là dữ liệu và con trỏ.
  • Dữ liệu là dữ liệu được lưu trữ trong và con trỏ là nút tiếp theo trong danh sách.
  • Nút đầu tiên trong danh sách được coi là phần đầu của danh sách.
  • Nút cuối cùng trong danh sách là phần đuôi và nó trỏ đến NULL.

Cú pháp để xác định một nút trong danh sách liên kết số ít như sau:

lớp công khai SinglyLinkedList

{

nút lớp

{

dữ liệu int;

Nút tiếp theo;

nút công khai (dữ liệu int)

{

this.data = data;

this.next = null;

}

}

}

Ví dụ 1:

Chương trình Java để chứng minh việc tạo một danh sách được Liên kết duy nhất trong Java và chèn các phần tử vào danh sách và sau đó hiển thị các phần tử của danh sách dưới dạng đầu ra trên màn hình:

lớp công khai SinglyLinkedList

{

// xác định một nút trong danh sách được liên kết đơn lẻ

nút lớp

{

dữ liệu int;

Nút tiếp theo;

Node công khai (dữ liệu int)

{

this.data = data;

this.next = null;

}

}

// xác định phần đầu và phần đuôi của một danh sách được liên kết đơn lẻ

public Node head = null;

public Node tail = null;

// xác định hàm insert () để thêm một nút vào danh sách

public void insert (int data)

{

// Tạo một nút mới

Node newNode = new Node (dữ liệu);

// kiểm tra danh sách trống

if (head == null)

{

// nếu danh sách đã cho trống, làm cho hai nút ở đầu và đuôi trỏ đến nút mới được tạo NewNode

head = newNode;

tail = newNode;

}

khác

{

// nếu không, newNode sẽ được thêm vào sau đuôi để con trỏ tiếp theo của đuôi trỏ đến newNode

tail.next = newNode;

tail = newNode;

}

}

// xác định hàm displaylist () để hiển thị dữ liệu trong danh sách

public void displaylist ()

{

// Trỏ đầu vào nút được gọi là hiện tại

Node current = head;

if (head == null)

{

System.out.println (“Danh sách đã cho trống”);

trở lại;

}

System.out.println (“Dữ liệu trong danh sách đã cho là:”);

while (current! = null)

{

// in từng dữ liệu trong danh sách và con trỏ tiếp theo trỏ đến nút tiếp theo

System.out.print (current.data + “”);

current = current.next;

}

System.out.println ();

}

public static void main (String [] args)

{

// tạo danh sách mới

SinglyLinkedList newList = new SinglyLinkedList ();

// Thêm dữ liệu vào danh sách bằng cách gọi hàm chèn

newList.insert (10);

newList.insert (30);

newList.insert (50);

newList.insert (70);

newList.insert (100);

// Hiển thị dữ liệu trong danh sách bằng cách gọi hàm displaylist ()

newList.displaylist ();

}

}

Đầu ra của chương trình trên được hiển thị trong ảnh chụp nhanh bên dưới:

LinkedListInJava_2.

Danh sách được liên kết kép

LinkedListInJava_3.

  • Loại danh sách được liên kết này bao gồm một chuỗi các nút trong đó mỗi nút bao gồm dữ liệu và hai con trỏ, cụ thể là con trỏ trước đó trỏ đến nút trước đó và con trỏ tiếp theo trỏ đến nút tiếp theo là một phần của danh sách . Điều này có thể được chuyển từ nút đầu tiên của danh sách đến nút cuối cùng của danh sách và ngược lại, và đây được gọi là danh sách được liên kết kép.
  • Hình trên minh họa một danh sách được liên kết kép.
  • Dữ liệu là dữ liệu được lưu trữ trong nút và mỗi nút bao gồm hai con trỏ là con trỏ trước và con trỏ tiếp theo.
  • Con trỏ trước đó trỏ đến, giống như tên gợi ý cho nút trước đó là một phần của danh sách.
  • Con trỏ sau nút hiện tại, trỏ đến nút tiếp theo trong danh sách.

Cú pháp để xác định một nút trong danh sách được liên kết kép như sau:

lớp công khai DoublyLinkedList

{

nút lớp

{

dữ liệu int;

Nút trước đó;

Nút tiếp theo;

nút công khai (dữ liệu int)

{

this.data = data;

}

}

}

Ví dụ 2:

Chương trình Java để chứng minh việc tạo danh sách được Liên kết kép trong Java và chèn các phần tử vào danh sách và sau đó hiển thị các phần tử của danh sách dưới dạng đầu ra trên màn hình:

lớp công khai DoublyLinkedList

{

// xác định một nút trong danh sách được liên kết kép

nút lớp

{

dữ liệu int;

Nút trước đó;

Nút tiếp theo;

Node công khai (dữ liệu int)

{

this.data = data;

}

}

// xác định phần đầu và phần đuôi của danh sách được liên kết kép và gán nó cho Null

Node head, tail = null;

// xác định hàm insert () để chèn dữ liệu vào danh sách

public void insert (int data)

{

// tạo một nút mới có tên là newNode

Node newNode = new Node (dữ liệu);

// kiểm tra xem danh sách đã cho có trống không

if (head == null)

{

// nếu danh sách trống, làm cho cả phần đầu và phần đuôi của danh sách đều trỏ đến NewNode

head = tail = newNode;

// con trỏ trước của phần đầu sẽ trỏ đến null

head.previous = null;

// con trỏ tiếp theo của đuôi sẽ trỏ đến giá trị rỗng

tail.next = null;

}

khác

{

// nếu không thì con trỏ tiếp theo của đuôi sẽ trỏ đến newNode

tail.next = newNode;

// con trỏ trước của newNode sẽ trỏ đến đuôi

Xem Thêm  Thuộc tính bán kính đường viền CSS - bảng css bán kính biên giới

newNode.previous = tail;

// và newNode được coi là phần cuối của danh sách

tail = newNode;

// và con trỏ đuôi tiếp theo được thực hiện để trỏ đến null cho thấy nó là nút cuối cùng của danh sách

tail.next = null;

}

}

// xác định hàm displaylist () để hiển thị dữ liệu trong danh sách

public void displaylist ()

{

// xác định một nút được gọi là hiện tại và chỉ định phần đầu của danh sách cho nó

Node current = head;

// kiểm tra xem phần đầu / danh sách có trống không

if (head == null)

{

System.out.println (“Danh sách đã cho trống”);

trở lại;

}

// nếu không thì in từng phần tử trong danh sách

System.out.println (“Dữ liệu trong danh sách được liên kết kép là:”);

while (current! = null)

{

// in từng dữ liệu trong danh sách và con trỏ tiếp theo trỏ đến nút tiếp theo

System.out.print (current.data + “”);

current = current.next;

}

}

public static void main (String [] args)

{

// xác định danh sách được liên kết kép mới

DoublyLinkedList newList = new DoublyLinkedList ();

// chèn dữ liệu vào danh sách bằng cách gọi hàm insert ()

newList.insert (10);

newList.insert (30);

newList.insert (50);

newList.insert (70);

newList.insert (100);

// hiển thị dữ liệu trong danh sách bằng cách gọi hàm displaylist ()

newList.displaylist ();

}

}

Đầu ra của chương trình trên được hiển thị trong ảnh chụp nhanh bên dưới:

LinkedListInJava_4

Danh sách được liên kết theo vòng tròn

LinkedListInJava_5.

Đây là loại danh sách liên kết bao gồm một chuỗi các nút trong đó mỗi nút bao gồm dữ liệu và liên kết đến nút tiếp theo và nút cuối cùng trong danh sách (còn được gọi là đuôi) trỏ đến nút đầu tiên trong danh sách (còn được gọi là phần đầu) được gọi là Danh sách liên kết theo vòng tròn.

Hình trên minh họa một danh sách được liên kết với Hình tròn.

Cú pháp để xác định một nút trong danh sách liên kết vòng tròn như sau:

danh sách liên kết lớp công khai

{

Nút lớp công khai

{

dữ liệu int;

Nút tiếp theo;

Node công khai (dữ liệu int)

{

this.data = data;

}

}

}

Ví dụ 3:

Chương trình Java để chứng minh việc tạo danh sách được Liên kết hình tròn trong Java và chèn các phần tử vào danh sách và sau đó hiển thị các phần tử của danh sách dưới dạng đầu ra trên màn hình:

danh sách liên kết lớp công khai

{

// xác định một nút trong danh sách liên kết vòng tròn

Nút lớp công khai

{

dữ liệu int;

Nút tiếp theo;

Node công khai (dữ liệu int)

{

this.data = data;

}

}

// xác định phần đầu và phần cuối của danh sách liên kết vòng tròn và gán nó cho Null

public Node head = null;

public Node tail = null;

// xác định hàm insert () để chèn dữ liệu vào danh sách

public void insert (int data)

{

// tạo một nút mới có tên là newNode

Node newNode = new Node (dữ liệu);

// kiểm tra xem danh sách đã cho có trống không

if (head == null)

{

// Nếu danh sách trống, làm cho cả phần đầu và phần đuôi đều trỏ đến newNode và con trỏ tiếp theo của newNode tới head

head = newNode;

tail = newNode;

newNode.next = head;

}

khác

{

// nếu không thì con trỏ tiếp theo của đuôi được đặt thành NewNode

tail.next = newNode;

// và newNode được coi là phần cuối của danh sách

tail = newNode;

// và con trỏ tiếp theo của đuôi được thực hiện để trỏ đến đầu danh sách vì nó là một danh sách được liên kết hình tròn

tail.next = head;

}

}

// xác định hàm displaylist () để hiển thị dữ liệu trong danh sách

public void displaylist ()

{

// xác định một nút được gọi là hiện tại và chỉ định phần đầu của danh sách cho nó

Node current = head;

// kiểm tra xem phần đầu / danh sách có trống không

if (head == null)

{

System.out.println (“Danh sách đã cho trống”);

}

khác

{

// nếu không thì in từng phần tử trong danh sách

System.out.println (“Dữ liệu trong danh sách liên kết vòng tròn là:”);

làm {

// in từng dữ liệu trong danh sách và con trỏ tiếp theo trỏ đến nút tiếp theo

System.out.print (“” + current.data);

current = current.next;

}

while (hiện tại! = head);

System.out.println ();

}

}

public static void main (String [] args)

{

// xác định danh sách liên kết vòng tròn mới

CircularLinkedList newList = new CircularLinkedList ();

// chèn dữ liệu vào danh sách bằng cách gọi hàm insert ()

newList.insert (10);

newList.insert (30);

newList.insert (50);

newList.insert (70);

newList.insert (100);

// hiển thị dữ liệu trong danh sách bằng cách gọi hàm displaylist ()

newList.displaylist ();

}

}

Đầu ra của chương trình trên được hiển thị trong ảnh chụp nhanh bên dưới:

LinkedListInJava_6

Khóa học dành cho nhà phát triển Java Full Stack

Hợp tác với HIRIST và HackerEarth

KHÁM PHÁ KHÓA HỌC Full Stack Java Developer Course

Có thể thực hiện nhiều thao tác khác nhau trên các phần tử trong danh sách được Liên kết trong Java. Các hoạt động đó là:

1. Chèn các phần tử vào danh sách

Các phần tử có thể được chèn vào một danh sách nhất định ở đầu danh sách, ở cuối danh sách hoặc ở một vị trí xác định của danh sách.

Chèn ở đầu danh sách

  • Một nút mới để lưu trữ dữ liệu được tạo
  • Con trỏ tiếp theo của nút mới được tạo để trỏ đến phần đầu của danh sách
  • Sau đó, nút mới được đặt làm đầu danh sách

Chèn ở cuối danh sách

  • Một nút mới để lưu trữ dữ liệu được tạo
  • Toàn bộ danh sách được duyệt qua để đến nút cuối cùng của danh sách
  • Con trỏ tiếp theo của nút cuối cùng được thực hiện để trỏ đến nút mới của danh sách, làm cho nút mới trở thành nút cuối cùng của danh sách

Chèn ở vị trí được chỉ định của danh sách

  • Một nút mới để lưu trữ dữ liệu được tạo
  • Danh sách được duyệt để đến nút ngay trước nút ở vị trí được chỉ định của danh sách
  • Các con trỏ tiếp theo được thực hiện để trỏ đến nút mới của danh sách, làm cho nút mới trở thành một trong các nút trong danh sách

2. Xóa các phần tử khỏi danh sách

Các phần tử có thể bị xóa khỏi danh sách nhất định từ đầu danh sách, từ cuối danh sách hoặc khỏi một vị trí cụ thể của danh sách.

Xóa khỏi đầu danh sách

  • Phần đầu của danh sách được tạo để trỏ đến nút thứ hai của danh sách

Xóa khỏi cuối danh sách

  • Toàn bộ danh sách được duyệt qua để đến nút cuối cùng thứ hai của danh sách
  • Con trỏ tiếp theo của nút cuối cùng thứ hai được thực hiện để trỏ đến null

Xóa khỏi một vị trí được chỉ định trong danh sách

  • Danh sách được duyệt qua để đến nút ngay trước nút bị xóa ở vị trí được chỉ định của danh sách
  • Các con trỏ tiếp theo được thay đổi để loại bỏ nút ở vị trí được chỉ định của danh sách

Ví dụ 4:

Chương trình Java để chứng minh việc chèn một phần tử vào đầu danh sách, chèn vào cuối danh sách, chèn vào một vị trí xác định của danh sách, xóa từ đầu danh sách, xóa từ cuối danh sách danh sách và xóa khỏi vị trí đã chỉ định của danh sách, sau đó hiển thị các phần tử của danh sách dưới dạng đầu ra trên màn hình:

Danh sách LinkedList của lớp công khai

{

// xác định một nút trong danh sách được liên kết đơn lẻ

nút lớp

{

dữ liệu int riêng tư;

nút riêng tư tiếp theo;

Node công khai (dữ liệu int)

{

this.data = data;

this.next = null;

}

}

public Node head = null;

// xác định phương thức để chèn một phần tử vào đầu danh sách

Xem Thêm  Cách học JavaScript [Hướng dẫn từng bước] - cách sử dụng javascript

public void inserttionatthebeginning (int data)

{

System.out.println (“Thêm một nút ở đầu danh sách với dữ liệu” + data + “\ n”);

// tạo một nút mới có tên là newNode

Node newNode = new Node (dữ liệu);

// kiểm tra xem danh sách đã cho có trống không

if (this.head == null)

{

// nếu danh sách trống, hãy đặt newNode làm đầu danh sách

this.head = newNode;

}

khác

{

// nếu không thì con trỏ tiếp theo của newNode được đặt ở đầu

newNode.next = this.head;

// và sau đó đặt newNode làm đầu danh sách

this.head = newNode;

}

}

// xác định một phương thức để chèn một phần tử vào cuối danh sách

public void inserttionattheend (int data)

{

System.out.println (“Thêm một nút vào cuối danh sách với dữ liệu” + data + “\ n”);

// tạo một nút mới có tên là newNode

Node newNode = new Node (dữ liệu);

// kiểm tra xem danh sách đã cho có trống không

if (this.head == null)

{

// nếu danh sách trống, hãy đặt newNode làm đầu danh sách

this.head = newNode;

}

khác

{

// nếu không, hãy tạo một nút mới có tên hiện tại và gán phần đầu của danh sách cho nút hiện tại

Nút hiện tại = this.head;

// và lướt qua cho đến cuối danh sách

while (current.next! = null)

{

// và gán từng nút cho nút hiện tại cho đến khi đến nút cuối cùng

current = current.next;

}

// gán con trỏ tiếp theo của nút cuối cùng cho newNode

current.next = newNode;

}

}

// xác định phương thức để chèn một phần tử vào vị trí được chỉ định của danh sách

public void inserttionatpos (int position, int data)

{

System.out.println (“Thêm nút ở vị trí được chỉ định” + vị trí + “của danh sách với dữ liệu” + dữ liệu + “\ n”);

// tạo một nút mới có tên là newNode

Node newNode = new Node (dữ liệu);

// tạo hai nút mới được gọi là hiện tại và trước đó, sau đó gán phần đầu của danh sách cho hai nút này

Nút hiện tại = this.head;

Nút trước = this.head;

// kiểm tra xem phần tử sẽ được chèn ở vị trí 1 hay không

if (vị trí == 1)

{

// sau đó con trỏ tiếp theo của nút mới được thực hiện để trỏ đến phần đầu

newNode.next = head;

// và nút mới được đặt làm đầu danh sách

this.head = newNode;

trở lại;

}

// nếu không thì toàn bộ danh sách được duyệt cho đến khi tìm thấy vị trí đã chỉ định bằng cách gán con trỏ hiện tại cho con trỏ trước đó và tiếp theo của hiện tại thành hiện tại

while (current.next! = null & amp; & amp; position & gt; 0)

{

trước = hiện tại;

current = current.next;

}

// sau đó nút mới được chèn vào con trỏ tiếp theo của nút trước đó

before.next = newNode;

// và con trỏ tiếp theo của nút mới được đặt làm nút hiện tại

newNode.next = current;

}

// xác định một phương thức để xóa một phần tử khỏi đầu danh sách

xóa khoảng trống công khaifromthebeginning ()

{

System.out.println (“xóa một nút khỏi đầu danh sách: \ n”);

// kiểm tra xem danh sách đã cho có trống không

if (this.head == null)

{

System.out.println (“Danh sách đã cho trống. \ n”);

}

khác

{

// nếu không thì loại bỏ phần đầu và đặt nút đầu tiên làm phần đầu của danh sách

head = head.next;

}

}

// xác định một phương thức để xóa một phần tử khỏi cuối danh sách

xóa khoảng trống công khaifromtheend ()

{

System.out.println (“Xóa một nút khỏi cuối danh sách: \ n”);

// kiểm tra xem danh sách đã cho có trống không

if (this.head == null)

{

System.out.println (“Danh sách đã cho trống. \ n”);

}

khác

{

// nếu không, hãy tạo một nút mới có tên là hiện tại và gán phần đầu cho nó để đi qua danh sách để đến phần tử cuối cùng thứ hai của danh sách và sau đó làm cho con trỏ tiếp theo của nó trỏ đến null

Nút hiện tại = this.head;

while (current.next.next! = null)

{

current = current.next;

}

current.next = null;

}

}

// xác định một phương thức để xóa một phần tử khỏi vị trí đã chỉ định của danh sách

xóa khoảng trống công khaifrompos (int position)

{

System.out.println (“Xóa một nút khỏi vị trí đã chỉ định” + vị trí + “\ n”);

// kiểm tra xem danh sách đã cho có trống không

if (this.head == null)

{

System.out.println (“Danh sách đã cho trống. \ n”);

}

// kiểm tra xem vị trí đã cho có phải là 0 không

else if (vị trí == 0)

{

// xóa phần đầu của danh sách và đặt nút đầu tiên của danh sách làm phần đầu của danh sách

head = head.next;

}

khác

{

// nếu không, hãy tạo một nút mới có tên là hiện tại và làm cho nó đứng đầu danh sách

Node current = head;

// sau đó lướt qua danh sách

for (int i = 0; current! = null & amp; & amp; i & lt; position -1; i ++)

{

current = current.next;

// kiểm tra xem phần tử không có trong danh sách hay không

if (current == null || current.next == null)

{

System.out.println (“Phần tử không có ở vị trí đã chỉ định. \ n”);

}

// xóa nút ở vị trí đã chỉ định của danh sách và gán con trỏ tiếp theo của nút hiện tại để trỏ đến nút tiếp theo bên cạnh nút tiếp theo

Nút temp = current.next.next;

current.next = temp;

}

}

}

// xác định hàm displaylist () để hiển thị dữ liệu trong danh sách

public void displaylist ()

{

// kiểm tra xem phần đầu / danh sách có trống không

if (this.head == null)

{

System.out.println (“Danh sách đã cho trống. \ n”);

}

khác

{

// nếu không thì in từng phần tử trong danh sách

System.out.println (“Các phần tử của Danh sách được Liên kết Singly là: \ n”);

Nút hiện tại = this.head;

while (current! = null)

{

// in từng dữ liệu trong danh sách và con trỏ tiếp theo trỏ đến nút tiếp theo

System.out.print (current.data + “- & gt;”);

current = current.next;

}

System.out.println (“NULL \ n”);

}

}

public static void main (String [] args)

{

// xác định danh sách liên kết mới

LinkedList newlist = new LinkedList ();

// hiển thị các phần tử của danh sách trước khi thực hiện bất kỳ thao tác nào trên danh sách

System.out.println (“Các phần tử của danh sách được liên kết riêng lẻ trước khi thực hiện thao tác chèn là: \ n”);

newlist.displaylist ();

// thực hiện các thao tác khác nhau trên danh sách và sau đó hiển thị các phần tử của danh sách

newlist.insertionatthebeginning (1);

newlist.displaylist ();

System.out.println (“\ n”);

newlist.insertionatthebeginning (2);

newlist.displaylist ();

System.out.println (“\ n”);

newlist.insertionattheend (8);

newlist.displaylist ();

System.out.println (“\ n”);

newlist.insertionattheend (9);

newlist.displaylist ();

System.out.println (“\ n”);

newlist.insertionatpos (2,3);

newlist.displaylist ();

System.out.println (“\ n”);

newlist.insertionatpos (3,4);

newlist.displaylist ();

System.out.println (“\ n”);

newlist.insertionatpos (4,5);

newlist.displaylist ();

System.out.println (“\ n”);

newlist.deletionfromthebeginning ();

newlist.displaylist ();

System.out.println (“\ n”);

newlist.deletionfromtheend ();

newlist.displaylist ();

System.out.println (“\ n”);

newlist.deletionfrompos (3);

newlist.displaylist ();

System.out.println (“\ n”);

}

}

Đầu ra của chương trình trên được hiển thị trong ảnh chụp nhanh bên dưới:

/ LinkedListInJava_7.

LinkedListInJava_8

LinkedListInJava_9

Nổi bật so với các bạn cùng lứa trong Mùa thẩm định này

Bắt đầu học với các khóa học MIỄN PHÍ của chúng tôi

Đăng ký ngay  Nổi bật so với các đồng nghiệp của bạn Mùa thẩm định này

Có hai hàm tạo được liên kết với Danh sách được liên kết trong Java. Đó là:

  • LinkedList ()

Một danh sách được liên kết trống có thể được tạo bằng cách sử dụng hàm tạo LinkedList ().

Cú pháp để tạo một danh sách được liên kết trống bằng cách sử dụng hàm tạo LinkedList () như sau:

LinkedList listname = new LinkedList ();

Ví dụ 5:

Chương trình Java để chứng minh việc tạo danh sách được liên kết trống bằng cách sử dụng hàm tạo LinkedList ():

Danh sách LinkedList của lớp công khai

{

// xác định một nút trong danh sách được liên kết

nút lớp

{

dữ liệu int;

Nút tiếp theo;

nút công khai (dữ liệu int)

{

this.data = data;

this.next = null;

}

}

// xác định phần đầu và phần đuôi của danh sách được liên kết

public Node head = null;

Xem Thêm  Cách tạo số điện thoại có thể nhấp bằng HTML - mã html để gọi số điện thoại

public Node tail = null;

// xác định hàm insert () để thêm một nút vào danh sách

public void insert (int data)

{

// Tạo một nút mới

Node newNode = new Node (dữ liệu);

// kiểm tra danh sách trống

if (head == null)

{

// nếu danh sách đã cho trống, làm cho hai nút ở đầu và đuôi trỏ đến nút mới được tạo NewNode

head = newNode;

tail = newNode;

}

khác

{

// nếu không, newNode sẽ được thêm vào sau đuôi để con trỏ tiếp theo của đuôi trỏ đến newNode

tail.next = newNode;

tail = newNode;

}

}

// xác định hàm displaylist () để hiển thị dữ liệu trong danh sách

public void displaylist ()

{

// Trỏ đầu vào nút được gọi là hiện tại

Node current = head;

if (head == null)

{

System.out.println (“Danh sách đã cho trống”);

trở lại;

}

System.out.println (“Dữ liệu trong danh sách đã cho là:”);

while (current! = null)

{

// in từng dữ liệu trong danh sách và con trỏ tiếp theo trỏ đến nút tiếp theo

System.out.print (current.data + “”);

current = current.next;

}

System.out.println ();

}

public static void main (String [] args)

{

// tạo danh sách mới

LinkedList newList = new LinkedList ();

// Thêm dữ liệu vào danh sách bằng cách gọi hàm chèn

newList.insert (10);

newList.insert (30);

newList.insert (50);

// Hiển thị dữ liệu trong danh sách bằng cách gọi hàm displaylist ()

newList.displaylist ();

}

}

Đầu ra của chương trình trên được hiển thị trong ảnh chụp nhanh bên dưới:

LinkedListInJava_10

  • LinkedList (Bộ sưu tập C)

Để tạo danh sách bao gồm tất cả các phần tử từ một tập hợp C cụ thể, bạn cần sử dụng hàm tạo LinkedList (Tập hợp C).

Cú pháp để tạo danh sách liên kết được tạo bởi các phần tử của một tập hợp cụ thể bằng cách sử dụng hàm tạo LinkedList (Collection C) như sau:

LinkedList listname = new LinkedList (c);

Ví dụ 6:

Chương trình Java để chứng minh việc tạo danh sách liên kết trống bằng cách sử dụng hàm tạo LinkedList (Collection C):

nhập java.util. *;

nhập java.util.ArrayList;

nhập java.util.LinkedList;

// xác định một lớp được gọi là demo

bản trình diễn lớp công khai

{

// phương thức chính được gọi là

public static void main (String [] args)

{

xác định tập hợp danh sách mảng chuỗi

ArrayList & lt; String & gt; Collect = new ArrayList & lt; String & gt; ();

collect.add (“Simplilearn”);

collect.add (“là”);

collect.add (“Tuyệt vời”);

// chuyển bộ sưu tập dưới dạng tham số tới phương thức khởi tạo LinkedList

LinkedList List2 = new LinkedList (sưu tầm);

// hiển thị các phần tử của danh sách

System.out.println (“Danh sách được liên kết mới là:” + List2);

}

}

Đầu ra của chương trình trên được hiển thị trong ảnh chụp nhanh bên dưới:

LinkedListInJava_11

Có một số phương pháp được liên kết với Danh sách được Liên kết trong Java. Một số trong số đó là:

  • add ()

Phương thức add () được sử dụng để chèn các phần tử vào danh sách.

  • addFirst ()

Phương thức addFirst () được sử dụng để chèn các phần tử vào đầu danh sách.

  • addLast ()

Phương thức addLast () được sử dụng để chèn các phần tử vào cuối danh sách.

  • remove ()

Phương thức remove () được sử dụng để xóa các phần tử khỏi danh sách.

  • removeFirst ()

Phương thức removeFirst () được sử dụng để xóa các phần tử khỏi đầu danh sách.

  • removeLast ()

Phương thức removeFirst () được sử dụng để xóa các phần tử khỏi cuối danh sách.

  • getFirst ()

Phương thức getFirst () được sử dụng để lấy các phần tử từ đầu danh sách.

  • getLast ()

Phương thức getLast () được sử dụng để lấy các phần tử từ cuối danh sách.

  • clear ()

Phương thức clear () được sử dụng để xóa tất cả các phần tử khỏi danh sách.

  • clone ()

Một bản sao ngắn của danh sách được liên kết được trả về bằng phương thức clone ().

  • peek ()

Phần đầu của danh sách được truy xuất bằng phương thức peek ().

  • peekFirst ()

Phần tử đầu tiên của danh sách được truy xuất bằng phương thức peekFirst ().

  • peekLast ()

Phần tử cuối cùng của danh sách được truy xuất bằng phương thức peekLast ().

  • thăm dò ý kiến ​​()

Đầu danh sách được truy xuất và xóa bằng phương thức thăm dò ý kiến ​​().

  • thăm dò ý kiến ​​đầu tiên ()

Phần tử đầu tiên của danh sách được truy xuất và xóa bằng phương thức thăm dò ý kiến ​​().

  • thăm dò ý kiến ​​()

Phần tử cuối cùng của danh sách được truy xuất và xóa bằng phương thức thăm dò ý kiến ​​().

  • size ()

Số lượng phần tử có trong danh sách được trả về bằng phương thức size ().

  • get (int index)

Phần tử hiện diện tại vị trí được chỉ định bởi chỉ mục được trả về bằng phương thức get (int index).

  • phần tử ()

Phần đầu của danh sách được truy xuất nhưng không bị xóa bằng phương thức element ().

Có được nền tảng vững chắc về Java, ngôn ngữ lập trình được sử dụng phổ biến nhất trong phát triển phần mềm với Khóa đào tạo chứng chỉ Java .


Xem thêm những thông tin liên quan đến chủ đề java danh sách liên kết là gì

228 – Doubly Linked List – Danh sách liên kết đôi – Học 1 lần sẽ không thể quên

alt

  • Tác giả: Code là Ghiền
  • Ngày đăng: 2020-02-21
  • Đánh giá: 4 ⭐ ( 7079 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Data Structures – Algorithms – Doubly Linked List – Danh sách liên kết đôi – Học 1 lần sẽ không thể quên

    Background Music:
    Bolereando
    Quincas Moreira

LinkedList trong java

  • Tác giả: kungfutech.edu.vn
  • Đánh giá: 4 ⭐ ( 8323 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: LinkedList là một cấu trúc dữ liệu tuyến tính. Các phần tử trong LinkedList không được lưu trữ liền kề nhau giống như arrays. Mỗi phần tử trong LinkedList liên kết với nhau bằng một con trỏ, nghĩa là mỗi phần tử sẽ tham chiếu đến địa chỉ của phần tử tiếp theo.

LinkedList (Danh sách liên kết) trong Java

  • Tác giả: freetuts.net
  • Đánh giá: 5 ⭐ ( 1676 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong bài này, chúng ta sẽ tìm hiểu loại Class Collection đầu tiên – đó là LinkedList (Danh sách liên kết) trong Java. Nội dung của bài này sẽ mô tả đặc điểm.

Danh sách liên kết trong java

  • Tác giả: diendan.congdongcviet.com
  • Đánh giá: 3 ⭐ ( 5920 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Cài đặt lớp SinglyLinkedList với thiết kế như dưới đây, có thể bổ sung các phương thức và biến thực thể khác nếu cần:

    public class SinglyLinkedList {
    protected Node head;

    public Node first() {} // trả về nút đứng đầu danh sách
    public Node last() {} // trả về nút đứng cuối danh sách
    public Node next(Node n) {} // trả về nút liền sau n
    public Node prev(Node n) {} // trả về nút liền trước n

Danh sách liên kết là gì? Sự khác nhau giữa DSLK và mảng

  • Tác giả: mylop.edu.vn
  • Đánh giá: 4 ⭐ ( 5626 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong bài này mình sẽ giới thiệu đến các bạn một khái niệm mới trong series giải thuật đó chính là danh sách liên kết.

20+ Câu hỏi Phỏng vấn Danh sách Liên kết dành cho Lập trình viên Java

  • Tác giả: helpex.vn
  • Đánh giá: 5 ⭐ ( 1261 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Gần đây, tôi đã chia sẻ rất nhiều câu hỏi phỏng vấn viết mã cho những người đang tích cực tìm kiếm việc làm với tư cách là nhà phát triển Java, đặc biệt là người mới bắt đầu, nhà phát triển…

Danh sách liên kết

  • Tác giả: hocjava.com
  • Đánh giá: 5 ⭐ ( 7883 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình