Phần 1

(6 câu)
Câu 1
Tự luận

Em đã học về cấu trúc mảng (một chiều hoặc hai chiều). Cấu trúc mảng là một danh sách các phần tử được đánh chỉ số và quan hệ với nhau thông qua hệ thống chỉ số này. Giả sử A[0], A[1], ..., A[n – 1] là mảng n phần tử, nếu thực hiện lệnh, ví dụ del A[1], xoá một phần tử của dãy trên, thì các phần tử còn lại sẽ tự động điều chỉnh lại chỉ số để đối tượng vẫn là mảng (nhưng có n – 1 phần tử).

Cấu trúc danh sách liên kết (hay danh sách móc nối, linked list) là đối tượng có cấu trúc gần giống với mảng nhưng có liên kết không chặt chẽ như mảng. Một ví dụ của cấu trúc danh sách liên kết là mô hình các trang web. Khi duyệt web, em không thể đánh chỉ số cho từng trang web đã duyệt, mà chỉ có thể di chuyển đến các trang trước và trang sau.

Em hãy tìm thêm các ví dụ thực tế của mô hình danh sách liên kết.

Bài làm:
Câu 2
Tự luận

Em hãy đọc, thảo luận và trả lời các câu hỏi sau:

1. Vì sao lại cần thư viện chương trình?

2. Ý nghĩa của các hàm trong thư viện chương trình là gì?

Bài làm:
Câu 3

Những câu nào sau đây là sai về ý nghĩa của việc sử dụng thư viện khi viết chương trình?

Chương trình sẽ ngắn hơn.
Chương trình sẽ chạy nhanh hơn.
Chương trình sáng sủa, dễ hiểu hơn.
Các hàm thư viện được viết một lần và sử dụng nhiều lần.
Câu 4
Tự luận

Đọc, trao đổi và thảo luận để biết cấu trúc dữ liệu của danh sách liên kết và các thao tác dữ liệu cơ bản trên danh sách liên kết.

Bài làm:
Câu 5
Tự luận

1. Đoạn chương trình sau thực hiện công việc gì?

from LinkedList import *

L = LL()

insert(L,10)

insert(L,20)

show(L)

Bài làm:
Câu 6
Tự luận

2. Viết đoạn chương trình ngắn sử dụng thư viện LinkedList để thiết lập một danh sách liên kết L và bổ sung các tên "Bình", "Hoa", "Hà" vào danh sách này.

Bài làm: