Hướng dẫn python linked list next - danh sách liên kết python tiếp theo

Hướng dẫn python linked list next - danh sách liên kết python tiếp theo

Nội dung chính

  • 1. Linked List là cái gì?
  • Linked List là tập hợp các nodes được liên kết với nhau. Node sau chứa link đến node trước
  • 2. Đặc điểm chính:
  • Ưu điểm:
  • Nhược điểm
  • 3. Thực hiện tạo linked list trên python
  • Đầu tiên ta tạo 1 class nodes trên python:
  • Thử set dữ liệu cho các node bằng tay:
  • Hàm push để thêm dữ liệu cho linked list
  • Thử tạo hàm duyệt các phần tử của linked list:
  • Ngoài ra ta còn có Double Linked List (Danh sách liên kết đôi)
  • 4. Độ phức tạp thuật toán của linked list
  • Phát triển một danh sách được liên kết duy nhất bằng Python
  • Thực hiện và Hiểu các Thao tác Chèn và Xóa
  • Chèn vào một danh sách được liên kết duy nhất
  • Cảm ơn vì đã đọc
  • MÃ ĐẦY ĐỦ

Đã đăng vào thg 4 18, 2019 1:57 SA 2 phút đọc 2 phút đọc

1. Linked List là cái gì?

2. Đặc điểm chính:

Ưu điểm:

2. Đặc điểm chính:

Ưu điểm:

  • Nhược điểm
  • 3. Thực hiện tạo linked list trên python

  • Đầu tiên ta tạo 1 class nodes trên python:
  • Thử set dữ liệu cho các node bằng tay:

Nhược điểm

  • 3. Thực hiện tạo linked list trên python

3. Thực hiện tạo linked list trên python

Đầu tiên ta tạo 1 class nodes trên python:

class Node:
    def __init__(self,data):
        self.data = data #Đây là dữ liệu mà ta sẽ lưu trữ trong mỗi node
        self.next = None #Đây là con trỏ trỏ đến node tiếp theo trong linked list

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

node1 = Node("Java")
node2 = Node("Python")
node3 = Node("C++")
node1.next = node2
node2.next = node3

# Ta sẽ được linked list dạng như: Java -> Python -> C++

Hàm push để thêm dữ liệu cho 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:

Ngoài ra ta còn có Double Linked List (Danh sách liên kết đôi)

Ngoài ra ta còn có Double Linked List (Danh sách liên kết đôi)

class DoublyNode:
    def __init__(self, data):
        self.data = data
        self.next = None
        self.prev = None

4. Độ phức tạp thuật toán của linked list

4. Độ phức tạp thuật toán của linked list

Phát triển một danh sách được liên kết duy nhất bằng Python

Thực hiện và Hiểu các Thao tác Chèn và Xóa

Phát triển một danh sách được liên kết duy nhất bằng Python

Thực hiện và Hiểu các Thao tác Chèn và Xóa

Chèn vào một danh sách được liên kết duy nhất

Cảm ơn vì đã đọc

Nội dung chính

  • Phát triển một danh sách được liên kết duy nhất bằng Python
  • Thực hiện và Hiểu các Thao tác Chèn và Xóa
  • Chèn vào một danh sách được liên kết duy nhất
  • Cảm ơn vì đã đọc
  • MÃ ĐẦY ĐỦ
  • Đã đăng vào thg 4 18, 2019 1:57 SA 2 phút đọc

-> Một linked list chứa tập hợp các node.

->Một node chứa data và liên kết đến node tiếp theo. Ví dụ ở đây data là 12. Có thể thay thế bằng các object hoặc bất kì dữ liệu nào khác thậm chí là một linked list khác (hại não =)) )

  1. Tiết kiếm bộ nhớ và cấp phát động: Không như array cần 1 lượng chỉ định ô nhớ trên bộ nhớ ngay khi khỏi tạo. Linked list chỉ sử dụng bộ nhớ để lưu trữ khi dữ liệu thực sự được lưu vào linked list.
  2. Nó còn có thể lưu các phần tử ở bất cứ đâu được phép trên bộ nhớ mà không cần các ô nhớ liền kề nhau như array
  3. Quick insertion (Thêm rất nhanh với complexity chỉ là O(1))

Quick deletion (Xóa nhanh) là một loại danh sách được liên kết trong cấu trúc dữ liệu là một hướng có nghĩa là nó chỉ có thể được duyệt theo một hướng duy nhất. Trong một danh sách đơn hàng có thể có nhiều nút kết nối với nhau. nút cuối cùng của một liên kết đơn được kết nối với một con trỏ NULL. Nút đầu tiên của danh sách liên kết đơn được kết nối với một con trỏ bắt đầu luôn trỏ đến vị trí bắt đầu. Phần tiếp theo của mỗi nút chứa địa chỉ của nút khác.

Slow search (Tìm kiểm chậm do phải duyệt qua nhiều node để đến được node cần tìm)

class Node:
    ...
    
    def traverse(self):
        node = self # Xác định node đầu tiên hay 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 đến node tiếp theo

1. Chèn
2. Xóa

Chèn vào một danh sách được liên kết duy nhất

Cảm ơn vì đã đọc

  1. MÃ ĐẦY ĐỦ
  2. Đã đăng vào thg 4 18, 2019 1:57 SA 2 phút đọc
  3. -> Một linked list chứa tập hợp các node.

->Một node chứa data và liên kết đến node tiếp theo. Ví dụ ở đây data là 12. Có thể thay thế bằng các object hoặc bất kì dữ liệu nào khác thậm chí là một linked list khác (hại não =)) )

Tiết kiếm bộ nhớ và cấp phát động: Không như array cần 1 lượng chỉ định ô nhớ trên bộ nhớ ngay khi khỏi tạo. Linked list chỉ sử dụng bộ nhớ để lưu trữ khi dữ liệu thực sự được lưu vào linked list.

Nó còn có thể lưu các phần tử ở bất cứ đâu được phép trên bộ nhớ mà không cần các ô nhớ liền kề nhau như array

Insertion At Start- Image By Author

NODE FIELD NODE FIELD OPERATION A NEXT E DATA ADD E NEXT B DATA ADD ##ADD a new Connection A NEXT B DATA BREAk ##Break Connection

Insertion After A Particular Node- Image By Author

Xóa nghĩa là xóa hoặc xóa một nút khỏi danh sách liên kết. Trong một danh sách liên kết đơn, chúng ta có thể xóa một nút theo ba cách.

  1. Từ cái kết
  2. Từ lúc bắt đầu
  3. Từ một vị trí cụ thể

"Xóa ở cuối hình ảnh của tác giả"

Xóa nút từ đầu cũng tương tự như xóa nút từ cuối ở đây chúng ta chỉ cần trỏ con trỏ bắt đầu đến nút thứ hai (B) và ngắt kết nối giữa A và B.

"Xóa khi bắt đầu-Hình ảnh bởi Tác giả"

Để xóa một nút khỏi một vị trí cụ thể, trước tiên chúng ta cần vị trí đó, sau đó chúng ta tạo kết nối giữa nút trước và nút tiếp theo đối với nút đó sau khi tạo kết nối, chúng ta ngắt kết nối nút từ nút trước và nút tiếp theo.

Cảm ơn vì đã đọc

Nếu bạn có bất kỳ câu hỏi nào liên quan đến mã và lời giải thích, hãy hỏi tôi trong phần bình luận.

Python cũng tuyệt vời như bạn. Hãy hạnh phúc và lan tỏa Hạnh phúc

MÃ ĐẦY ĐỦ