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
p>
- 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:
Danh sách được liên kết kép
- 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
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:
p>
Danh sách được liên kết theo vòng tròn
Đâ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:
p>
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
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
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:
p>
p>
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
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;
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:
p>
-
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:
p>
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
- 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