Trang chủ Lớp 11 Tin học Giải SBT Tin học 11 Cánh diều Bài 15. Cấu trúc dữ liệu sanh sách liên kế và ứng dụng

Giải SBT Tin học 11 Cánh diều Bài 15. Cấu trúc dữ liệu sanh sách liên kế và ứng dụng

Giải SBT Tin học 11 Cánh diều Bài 15. Cấu trúc dữ liệu sanh sách liên kế và ứng dụng

  • 46 lượt thi

  • 5 câu hỏi

  • 0 phút

Danh sách câu hỏi

Câu 1:

13/07/2024

Giả sử em phải truy cập phần tử thứ k trong danh sách. Độ phức tạp thời gian để truy cập phần tử đó là bao nhiêu và tại sao?

Xem đáp án

Vì em không có cách truy cập ngẫu nhiên tới phần tử thứ k, do đó ta buộc phải nhảy k − 1 lần bắt đầu từ phần tử đầu tiên. Vì vậy độ phức tạp là O(k).


Câu 2:

17/07/2024

Cho một danh sách liên kết đơn có giá trị các nút được sắp xếp theo thứ tự không giảm (nghĩa là node.Data < node.Next.Data) và một phần tử x. Hỏi độ phức tạp để chèn một nút có giá trị là x vào danh sách liên kết sao cho không thay đổi tính chất của danh sách là bao nhiêu?

Xem đáp án

Độ phức tạp là O(n) với n là số phần tử của danh sách.

Cách làm: Đầu tiên em tìm nút node mà node.Next.Data có giá trị lớn hơn hoặc bằng x hoặc node.Next rỗng, sau đó chèn node có giá trị x vào giữa

node và node.Next.


Câu 5:

22/07/2024

Để hiểu rõ hơn về danh sách liên kết và các thao tác trên danh sách liên kết, Tí thực hiện các thao tác thuộc hai loại sau:

Loại 1: “Quay” k lần: tức là Tí sẽ lấy phần tử đầu tiên của danh sách liên kết và chèn nó vào sau phần tử cuối cùng, thực hiện k lần như vậy.

Loại 2: Đảo ngược danh sách liên kết.

Sau nhiều giờ lập trình, Ti tiến hành kiểm thử, tuy nhiên lại không tự tin vào kết quả của mình. Tí nhờ bạn code để đối chiếu kết quả.

Biết rằng Tí đã cài sẵn danh sách liên kết trong một mô đun và import nó vào trong chương trình. Danh sách liên kết này đảm bảo hoạt động chính xác. Tí cũng code sẵn phần xử lí nhập vào, in ra dữ liệu. Hãy hoàn thiện hai hàm rotate (quay mảng) và reverseList(đảo ngược).

Cấu trúc nút được định nghĩa như sau:

class Node:

def

init self.data self.next

(self, data):

= data

Giả sử có một biến tên node thuộc kiểu Node tượng trưng cho một nút trong danh sách liên kết. Để lấy nút tiếp theo, ta viết node.next; để lấy ra giá trị, ta viết node.data. Để tạo ra một nút mới có giá trị là value, ta viết

node = Node(value).

Hai hàm cần cài đặt được cung cấp tham số head: nút trỏ tới đầu của danh sách liên kết. Hàm trả về biến kiểu Node, trỏ tới phần tử đầu tiên của danh sách liên kết mới được thay đổi sau các truy ván.

Cụ thể hơn, các hàm này được định nghĩa như sau:

def rotate (head, k) -> Node: # Hoàn thiện phần thân hàm

def reverseList (head) -> Node: # Hoàn thiện phần thân hàm

Xem đáp án

Hướng dẫn giải: Thao tác chèn và duyệt danh sách liên kết được vận dụng nhiều trong hai hàm sau.

Để hiểu rõ hơn về danh sách liên kết và các thao tác trên danh sách liên kết, Tí thực hiện các thao tác thuộc hai loại sau: (ảnh 1)
Để hiểu rõ hơn về danh sách liên kết và các thao tác trên danh sách liên kết, Tí thực hiện các thao tác thuộc hai loại sau: (ảnh 2)

Bắt đầu thi ngay