Cho cây nhị phân T, nút có địa chỉ 7 có 2 con ở địa chỉ nào:
Trả lời:
Đáp án đúng: C
Trong cây nhị phân, nếu một nút có địa chỉ là `n`, thì hai nút con của nó sẽ có địa chỉ là `2n` và `2n + 1`. Trong trường hợp này, nút có địa chỉ là 7, vậy hai nút con của nó sẽ có địa chỉ là `2 * 7 = 14` và `2 * 7 + 1 = 15`.
Đề cương ôn thi với 220 câu trắc nghiệm Cấu trúc dữ liệu và giải thuật có đáp án được chọn lọc và chia sẻ dưới đây, nhằm giúp bạn sinh viên hệ thống kiến thức chuẩn bị cho kì thi sắp diễn ra.
50 câu hỏi 60 phút
Câu hỏi liên quan
Lời giải:
Đáp án đúng: A
Heap (vun đống) là một cấu trúc dữ liệu cây nhị phân hoàn chỉnh, trong đó giá trị của nút cha luôn lớn hơn hoặc bằng giá trị của các nút con (trong trường hợp max-heap, thường được sử dụng trong sắp xếp vun đống). Tính chất "hoàn chỉnh" đảm bảo rằng tất cả các mức của cây đều được điền đầy đủ, ngoại trừ có thể mức cuối cùng được điền từ trái sang phải. Do đó, đáp án đúng phải bao gồm cả tính chất "cây nhị phân hoàn chỉnh" và tính chất "giá trị của nút cha luôn lớn hơn giá trị hai nút con".
Lời giải:
Đáp án đúng: C
Đoạn mã giả mô tả thuật toán tìm kiếm tuyến tính một phần tử có giá trị X trong một mảng M gồm N phần tử. Thuật toán duyệt mảng từ đầu đến khi tìm thấy phần tử X hoặc duyệt hết mảng. Bước lặp (B2) tiếp tục tăng chỉ số k nếu M[k] bằng X và k chưa đạt đến cuối mảng (k != N). Nếu k < N sau khi kết thúc vòng lặp, tức là đã tìm thấy X tại vị trí k. Ngược lại, nếu k >= N, nghĩa là đã duyệt hết mảng mà không tìm thấy X. Do đó, đáp án đúng là tìm tuyến tính phần tử có giá trị X.
Lời giải:
Đáp án đúng: C
Đoạn code trên mô tả thuật toán sắp xếp nổi bọt (Bubble Sort). Vòng lặp `for` ở dòng [3] duyệt qua các phần tử từ đầu mảng đến gần cuối mảng. Vòng lặp bên trong (dòng [4] cần điền) sẽ so sánh các cặp phần tử liền kề và đổi chỗ nếu chúng không đúng thứ tự.
Để thuật toán hoạt động đúng, vòng lặp bên trong cần duyệt từ cuối mảng về vị trí `I`. Điều này đảm bảo rằng sau mỗi lần lặp của vòng ngoài, phần tử lớn nhất chưa được sắp xếp sẽ "nổi" lên vị trí đúng của nó ở cuối mảng.
Phương án 1: `for (int J = N-1; J > I; J++)` có vẻ đúng nhưng tăng J lên thay vì giảm J.
Phương án 2: `for (int J = N; J < I; J--)` sai vì điều kiện `J < I` không phù hợp, và `J` bắt đầu từ `N` (vượt quá chỉ số mảng).
Phương án 3: `for (int J = N-1; J > I; J--)` đúng vì nó bắt đầu từ cuối mảng (`N-1`), duyệt ngược về `I+1` (`J > I`), và giảm `J` mỗi lần lặp. Trong mỗi lần lặp của vòng ngoài, các phần tử từ `M[I+1]` đến `M[N-1]` đã được sắp xếp đúng vị trí. Vòng lặp này đảm bảo các cặp `M[J]` và `M[J-1]` được so sánh và hoán đổi nếu cần thiết, đẩy phần tử lớn nhất trong đoạn `M[I]` đến `M[N-1]` lên đúng vị trí.
Phương án 4: "Không có dòng lệnh nào phù hợp..." là sai, vì vòng lặp bên trong là cần thiết cho thuật toán hoạt động.
Vậy, phương án đúng là phương án 3.
Để thuật toán hoạt động đúng, vòng lặp bên trong cần duyệt từ cuối mảng về vị trí `I`. Điều này đảm bảo rằng sau mỗi lần lặp của vòng ngoài, phần tử lớn nhất chưa được sắp xếp sẽ "nổi" lên vị trí đúng của nó ở cuối mảng.
Phương án 1: `for (int J = N-1; J > I; J++)` có vẻ đúng nhưng tăng J lên thay vì giảm J.
Phương án 2: `for (int J = N; J < I; J--)` sai vì điều kiện `J < I` không phù hợp, và `J` bắt đầu từ `N` (vượt quá chỉ số mảng).
Phương án 3: `for (int J = N-1; J > I; J--)` đúng vì nó bắt đầu từ cuối mảng (`N-1`), duyệt ngược về `I+1` (`J > I`), và giảm `J` mỗi lần lặp. Trong mỗi lần lặp của vòng ngoài, các phần tử từ `M[I+1]` đến `M[N-1]` đã được sắp xếp đúng vị trí. Vòng lặp này đảm bảo các cặp `M[J]` và `M[J-1]` được so sánh và hoán đổi nếu cần thiết, đẩy phần tử lớn nhất trong đoạn `M[I]` đến `M[N-1]` lên đúng vị trí.
Phương án 4: "Không có dòng lệnh nào phù hợp..." là sai, vì vòng lặp bên trong là cần thiết cho thuật toán hoạt động.
Vậy, phương án đúng là phương án 3.
Lời giải:
Đáp án đúng: D
Đề bài yêu cầu hoàn thiện đoạn code sắp xếp chọn trực tiếp bằng cách điền vào chỗ trống các câu lệnh hoán đổi giá trị của hai phần tử trong mảng. Thuật toán sắp xếp chọn trực tiếp tìm phần tử nhỏ nhất trong phần còn lại của mảng và hoán đổi nó với phần tử ở vị trí hiện tại. Để hoán đổi hai phần tử M[K] và M[PosMin], ta cần một biến tạm (Temp) để lưu giá trị của M[K], sau đó gán M[PosMin] cho M[K], và cuối cùng gán giá trị của Temp (giá trị ban đầu của M[K]) cho M[PosMin]. Phương án 4 thực hiện đúng các bước này.
Các phương án khác sai vì:
- Phương án 1 gán M[K] cho Temp, sau đó gán M[PosMin] cho Temp, vậy Temp chỉ giữ giá trị M[PosMin], và sau đó gán Temp cho M[PosMin], do đó M[K] không thay đổi.
- Phương án 2 gán M[K] cho Temp, sau đó gán M[PosMin] cho M[K]. Cuối cùng gán Temp cho M[PosMin]. Tuy nhiên, dòng M[K] = Temp; không đúng vì cần phải gán M[K] = M[PosMin]; trước.
- Phương án 3 gán M[K] cho Temp, sau đó gán M[K] cho M[PosMin]. Cuối cùng gán Temp cho M[PosMin]. Tuy nhiên, dòng M[PosMin] = M[K]; không đúng vì cần phải gán M[K] = M[PosMin]; trước.
Các phương án khác sai vì:
- Phương án 1 gán M[K] cho Temp, sau đó gán M[PosMin] cho Temp, vậy Temp chỉ giữ giá trị M[PosMin], và sau đó gán Temp cho M[PosMin], do đó M[K] không thay đổi.
- Phương án 2 gán M[K] cho Temp, sau đó gán M[PosMin] cho M[K]. Cuối cùng gán Temp cho M[PosMin]. Tuy nhiên, dòng M[K] = Temp; không đúng vì cần phải gán M[K] = M[PosMin]; trước.
- Phương án 3 gán M[K] cho Temp, sau đó gán M[K] cho M[PosMin]. Cuối cùng gán Temp cho M[PosMin]. Tuy nhiên, dòng M[PosMin] = M[K]; không đúng vì cần phải gán M[K] = M[PosMin]; trước.
Lời giải:
Đáp án đúng: C
Đoạn mã B8 trong thuật toán sắp xếp chèn trực tiếp (Straight Insertion Sort) được sử dụng để dời các phần tử đã được sắp xếp trong đoạn từ vị trí Pos đến vị trí K về phía sau một vị trí để tạo khoảng trống cho phần tử X (M[K+1]) được chèn vào đúng vị trí. Biến I được khởi tạo là K+1 và lặp giảm dần đến Pos. Do đó, B8 mô tả trường hợp "Nếu còn phải dời các phần tử từ Pos->K+1 về phía sau 1 vị trí".
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp
136 tài liệu563 lượt tải

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp
125 tài liệu585 lượt tải

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng
325 tài liệu608 lượt tải

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất
331 tài liệu1010 lượt tải

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
246 tài liệu802 lượt tải

CEO.22: Bộ Tài Liệu Quy Trình Kiểm Toán, Kiểm Soát Nội Bộ Doanh Nghiệp
138 tài liệu417 lượt tải
ĐĂNG KÝ GÓI THI VIP
- Truy cập hơn 100K đề thi thử và chính thức các năm
- 2M câu hỏi theo các mức độ: Nhận biết – Thông hiểu – Vận dụng
- Học nhanh với 10K Flashcard Tiếng Anh theo bộ sách và chủ đề
- Đầy đủ: Mầm non – Phổ thông (K12) – Đại học – Người đi làm
- Tải toàn bộ tài liệu trên TaiLieu.VN
- Loại bỏ quảng cáo để tăng khả năng tập trung ôn luyện
- Tặng 15 ngày khi đăng ký gói 3 tháng, 30 ngày với gói 6 tháng và 60 ngày với gói 12 tháng.
77.000 đ/ tháng