LINKED LIST LÀ GÌ

 - 
1. Linked List là dòng gì?

Linked List là tập thích hợp các nodes được link với nhau. Node sau đựng liên kết mang lại node trước
*
-> Một linked danh sách chứa tập hòa hợp những node.

*
->Một node chứa data cùng liên kết cho node tiếp theo. ví dụ như tại đây data là 12. cũng có thể sửa chữa thay thế bởi các object hoặc bất cứ dữ liệu như thế nào không giống thậm chí là là 1 trong linked list không giống (hóc búa =)) )

*

*

2.


Bạn đang xem: Linked list là gì


Xem thêm: Báo Cáo Thống Kê Là Gì ? Báo Cáo Thống Kê (Statistical Report) Là Gì



Xem thêm: Vụ Án Hành Chính Là Gì - Án Hành Chính Được Cơ Quan Nào Thi Hành

Điểm sáng chính:

Ưu điểm:

Tiết tìm bộ lưu trữ và cấp phép động: Không nlỗi array phải 1 lượng hướng đẫn ô ghi nhớ trên bộ lưu trữ ngay lúc khỏi tạo thành. Linked các mục chỉ áp dụng bộ lưu trữ nhằm lưu trữ khi dữ liệu thực sự được lưu lại vào linked các mục.Nó còn hoàn toàn có thể lưu lại các bộ phận ở bất cứ đâu được phép trên bộ nhớ lưu trữ nhưng ko cần những ô ghi nhớ cạnh bên nhau như array
*
Quiông xã insertion (Thêm siêu nhanh cùng với complexity chỉ cần O(1))Quiông xã deletion (Xóa nhanh)

Nhược điểm

Slow tìm kiếm (Tìm kiểm đủng đỉnh bởi phải phê duyệt qua nhiều node nhằm đến được node yêu cầu tìm)3. Thực hiện nay chế tác linked danh sách bên trên python

Thứ nhất ta sản xuất 1 class nodes bên trên python:

class Node: def __init__(self,data): self.data = data #Đây là tài liệu nhưng ta đã tàng trữ trong những node self.next = None #Đây là nhỏ trỏ trỏ đến node tiếp sau trong linked list

Thử phối dữ liệu cho các node bằng tay:

node1 = Node("Java")node2 = Node("Python")node3 = Node("C++")node1.next = node2node2.next = node3# Ta sẽ tiến hành linked danh sách dạng như: Java -> Pyeo hẹp -> C++

Hàm push để thêm dữ liệu mang đến linked list

def push(head, valuetoInsert): currentNode = head while currentNode is not None: if currentNode.nextNode is None: currentNode.nextNode = linkedListNode(valuetoInsert) return head currentNode = currentNode.nextNode

Thử tạo hàm duyệt các phần tử của linked list:

class Node: ... def traverse(self): node = self # Xác định node trước tiên xuất xắc còn gọi là head node while node != None: print node.data # in ra dữ liệu node = node.next # tiếp tực cho node tiếp theo

Ngoài ra ta còn có Double Linked List (Danh sách links đôi)

class DoublyNode: def __init__(self, data): self.data = data self.next = None self.prev = None-> Điểm khác nhau của double linked list và linked các mục chính là từng node của DLL vừa tất cả cất bé trỏ mang lại node tiếp theo vừa chứa bé trỏ đến node trước nó.

4. Độ tinh vi thuật toán thù của linked list

Với n là số thành phần của linked:- Thêm một phần tử vào sau danh sách: O(n) bởi vì phải phê chuẩn không còn những ptử để mang node nghỉ ngơi đuôi- Thêm 1 phần tử sinh sống đầu danh sách: O(1)- Duyệt qua tất cả những phần tử O(n)- Xóa một phần tử: Trường hòa hợp xấu tuyệt nhất là O(n) và tốt nhất là O(1)## Tài liệu tyêu thích khảo: https://medium.com/