Tất cả câu hỏi

Ngân hàng câu hỏi trắc nghiệm có giải thích chi tiết.

1.280/13.152 câuCòn 11.872
AXu hướng “trí tuệ hóa”
BXu hướng “trung lưu hóa”
CXu hướng thỏa hiệp
DXu hướng cải cách
Lời giải
Đáp án đúng: "Xu hướng “trung lưu hóa”". Việc một bộ phận công nhân nắm giữ cổ phần, có thu nhập và mức sống xích lại gần tầng lớp trung lưu chính là biểu hiện của xu hướng trung lưu hóa; song lượng tư liệu sản xuất họ sở hữu quá nhỏ, không đủ để thôi phải bán sức lao động, nên địa vị làm thuê và bản chất giai cấp của họ vẫn không thay đổi. Cách gọi "Xu hướng “trí tuệ hóa”" nói về việc nâng cao học vấn, tay nghề và tăng tỷ trọng lao động trí óc trong giai cấp công nhân, không bàn tới quan hệ sở hữu. Cách gọi "Xu hướng thỏa hiệp" diễn tả thái độ chính trị trong đấu tranh giai cấp, không phải biến đổi về sở hữu và mức sống. Cách gọi "Xu hướng cải cách" cũng thuộc về phương thức đấu tranh, không mô tả hiện tượng công nhân tham gia sở hữu tư liệu sản xuất qua chế độ cổ phần.
Mở trang câu hỏi này →
APhát triển
BSinh nở
CBạn bè
DGia đình
Lời giải
Đáp án đúng: "Gia đình". Trong luận điểm này, hai quan hệ nêu trước đó là sản xuất ra tư liệu sinh hoạt và sản xuất ra những nhu cầu mới, còn quan hệ thứ ba là việc con người tái sản xuất ra chính bản thân mình, tức sinh con đẻ cái và nuôi dạy thế hệ sau; quan hệ ấy luôn diễn ra trong một thiết chế xã hội thống nhất quan hệ hôn nhân với quan hệ huyết thống, và thiết chế đó chính là gia đình. Cách trả lời "Phát triển" chỉ nêu một đặc tính chung của mọi quá trình lịch sử, không phải một quan hệ xã hội cụ thể tham dự vào lịch sử. Cách trả lời "Sinh nở" mới dừng ở hành vi sinh học, trong khi luận điểm nhấn mạnh một quan hệ xã hội có từ đầu và bao hàm cả việc nuôi dưỡng, giáo dục con người. Cách trả lời "Bạn bè" là quan hệ xã hội không dựa trên hôn nhân hay huyết thống, không đảm nhận chức năng tái sản xuất ra con người.
Mở trang câu hỏi này →
ATôn giáo
BTín ngưỡng
CMê tín
DMê tín dị đoan
Lời giải
Đáp án đúng: "Tín ngưỡng". Việc thờ cúng các vị thần gắn với tâm thức và truyền thống của một cộng đồng dân cư, biểu đạt qua lễ hội và nghi lễ dân gian, nhưng không có hệ thống giáo lý, giáo luật, giáo hội và hàng ngũ chức sắc tổ chức chặt chẽ, nên thuộc phạm trù tín ngưỡng chứ chưa thành tôn giáo. Cách gọi "Tôn giáo" đòi hỏi đủ giáo lý, giáo luật, lễ nghi và tổ chức giáo hội với tín đồ, chức sắc xác định, điều mà tập quán thờ thần của cộng đồng này không có. Cách gọi "Mê tín" chỉ niềm tin mù quáng, trái khoa học, làm con người mất tỉnh táo trong nhận thức và hành động, khác hẳn một sinh hoạt văn hóa tinh thần lành mạnh được pháp luật tôn trọng. Cách gọi "Mê tín dị đoan" còn nặng hơn, gắn với bói toán, đồng bóng, trục lợi, gây hậu quả xấu cho sức khỏe, tài sản và trật tự xã hội, hoàn toàn không phải bản chất của tục thờ cúng truyền thống.
Mở trang câu hỏi này →
ASự phát triển của lực lượng sản xuất và tương ứng với trình độ của lực lượng sản xuất là quan hệ sản xuất mới, xã hội chủ nghĩa
BPhát triển kinh tế - xã hội
CBan hành Luật hôn nhân và gia đình
DPhát triển kinh tế thị trường định hướng xã hội chủ nghĩa
Lời giải
Đáp án đúng: "Sự phát triển của lực lượng sản xuất và tương ứng với trình độ của lực lượng sản xuất là quan hệ sản xuất mới, xã hội chủ nghĩa". Gia đình là một thiết chế xã hội nên nền tảng vật chất để xây dựng gia đình mới nằm ở phương thức sản xuất: lực lượng sản xuất phát triển cho phép xóa bỏ chế độ tư hữu, xác lập chế độ công hữu về tư liệu sản xuất chủ yếu, nhờ đó mất đi nguồn gốc kinh tế của sự thống trị gia trưởng, của bất bình đẳng nam nữ và của hôn nhân vụ lợi. Cách trả lời "Phát triển kinh tế - xã hội" quá chung, không chỉ ra quan hệ sản xuất mới vốn là cái giữ vai trò quyết định. Cách trả lời "Ban hành Luật hôn nhân và gia đình" thuộc cơ sở chính trị - pháp lý, là sự thừa nhận về mặt nhà nước chứ không phải nền tảng kinh tế. Cách trả lời "Phát triển kinh tế thị trường định hướng xã hội chủ nghĩa" chỉ nêu một mô hình vận hành kinh tế của một quốc gia trong chặng quá độ, không phải cơ sở chung mà lý luận nói tới.
Mở trang câu hỏi này →
APhát triển
BTiến bộ
CHuyết thống
DKhông được bảo vệ
Lời giải
Đáp án đúng: "Tiến bộ". Gia đình văn hóa được xác định là mô hình gia đình tiến bộ, nghĩa là gia đình xây dựng trên hôn nhân tự nguyện, một vợ một chồng, vợ chồng bình đẳng, các thành viên tôn trọng và có trách nhiệm với nhau, chấp hành pháp luật và góp phần xây dựng đời sống văn hóa ở cộng đồng; tính tiến bộ ấy đối lập với quan hệ gia đình phong kiến, gia trưởng, bất bình đẳng. Cách trả lời "Phát triển" chỉ nói tới sự lớn lên về quy mô hay điều kiện vật chất, không phản ánh chuẩn mực về quan hệ và lối sống vốn làm nên gia đình văn hóa. Cách trả lời "Huyết thống" nhắc tới một quan hệ tự nhiên có ở mọi gia đình trong mọi thời đại, nên không phải dấu hiệu riêng của mô hình này. Cách trả lời "Không được bảo vệ" trái hẳn thực tế: gia đình là tế bào của xã hội, được Nhà nước và pháp luật bảo vệ, chăm lo.
Mở trang câu hỏi này →
ALãnh đạo tôn giáo
BQuản lý tôn giáo
CGiáo chủ tôn giáo
DChức sắc tôn giáo
Lời giải
Đáp án đúng: "Chức sắc tôn giáo". Trong hệ thống khái niệm về tôn giáo, tín đồ là người tin theo và thực hành một tôn giáo, còn bộ phận tín đồ được tấn phong phẩm vị, được giao giữ chức vụ trong giáo hội và có thẩm quyền hành đạo thì mang tên gọi riêng là chức sắc; đúng dấu hiệu có chức vụ và phẩm vị mà câu hỏi nêu. Cách gọi "Lãnh đạo tôn giáo" chỉ mô tả vai trò đứng đầu nói chung, không phải thuật ngữ gắn với việc được giáo hội phong phẩm theo giáo luật. Cách gọi "Quản lý tôn giáo" lại thuộc hoạt động của Nhà nước đối với lĩnh vực tôn giáo, tức chủ thể bên ngoài giáo hội chứ không phải tín đồ của một tôn giáo. Cách gọi "Giáo chủ tôn giáo" chỉ dùng cho người sáng lập hoặc người đứng đầu tối cao của một tôn giáo, phạm vi hẹp hơn hẳn lớp người đang giữ phẩm vị và chức vụ trong giáo hội.
Mở trang câu hỏi này →
ALà sản phẩm của đấng thần linh
BLà do điều kiện kinh tế - xã hội sinh ra
CTôn giáo tồn tại và phát triển song song với quá trình hình thành, phát triển và tiêu vong của con người
DTôn giáo ra đời, tồn tại và biến đổi trong một giai đoạn lịch sử nhất định của loài người.
Lời giải
Đáp án đúng: "Tôn giáo ra đời, tồn tại và biến đổi trong một giai đoạn lịch sử nhất định của loài người.". Gọi tôn giáo là một phạm trù lịch sử tức là khẳng định nó không vĩnh hằng: nó chỉ xuất hiện khi trình độ sản xuất còn thấp khiến con người bất lực trước tự nhiên và trước ách áp bức xã hội, nó đổi thay cùng với sự thay thế các hình thái kinh tế - xã hội, và nó sẽ tự mất đi khi những nguồn gốc kinh tế, xã hội, nhận thức sinh ra nó bị xóa bỏ. Cách lý giải "Là sản phẩm của đấng thần linh" đứng trên lập trường duy tâm, quy tôn giáo về nguồn gốc siêu nhiên nên phủ nhận chính tính lịch sử cần chứng minh. Cách lý giải "Là do điều kiện kinh tế - xã hội sinh ra" mới nói tới nguồn gốc xã hội, tức tính xã hội của tôn giáo, chưa chạm tới việc nó có điểm khởi đầu và điểm kết thúc trong lịch sử. Cách lý giải "Tôn giáo tồn tại và phát triển song song với quá trình hình thành, phát triển và tiêu vong của con người" gán cho tôn giáo tuổi thọ bằng tuổi thọ loài người, trong khi xã hội nguyên thủy buổi đầu chưa có tôn giáo và tôn giáo sẽ tiêu vong ngay trong lòng xã hội loài người.
Mở trang câu hỏi này →
APolish notation
BSub algorithm
CRecursion
DTraversal algorithm
Lời giải
Đáp án đúng: "Recursion". Đệ quy đúng là việc một thuật toán hay một hàm tự gọi chính nó, trực tiếp khi thân hàm gọi thẳng tên mình, hoặc gián tiếp khi nó gọi hàm khác rồi hàm đó gọi lại nó; lời giải thu nhỏ dần bài toán cho tới trường hợp cơ sở, và các lời gọi chồng lên nhau trên ngăn xếp thực thi. "Sub algorithm" sai vì thuật toán con chỉ là đoạn được thuật toán khác gọi tới, nó không bắt buộc và thường không gọi lại chính mình. "Traversal algorithm" sai vì duyệt là tên theo mục đích, tức thăm lần lượt các phần tử của một cấu trúc; nó có thể cài bằng đệ quy nhưng cũng cài được bằng vòng lặp với ngăn xếp hay hàng đợi. "Polish notation" sai vì đó là cách viết biểu thức với toán tử đặt trước toán hạng, một ký pháp chứ không phải một kiểu lời gọi.
Mở trang câu hỏi này →
A4, 2, 7, 1, 3, 6, 8
B2, 1, 4, 3, 6, 7, 8
C2, 1, 4, 3, 7, 8, 6
D2, 1, 4, 3, 7, 6, 8
Lời giải
Đáp án đúng: "2, 1, 4, 3, 7, 6, 8". Cây có gốc 5, con trái 2 với hai con 1 và 4, con trái của 4 là 3; con phải của 5 là 7 với hai con 6 và 8. Xoá 5 theo kiểu hợp nhất: nhánh trái leo lên làm gốc, nhánh phải treo vào nút phải nhất của nhánh trái. Nút phải nhất của nhánh trái là 4, vì từ 2 sang con phải 4 rồi 4 không có con phải; nên cây gốc 7 trở thành con phải của 4. Cây mới: gốc 2 với hai con 1 và 4; 4 có con trái 3 và con phải 7; 7 có hai con 6 và 8. Các lớp là 2; rồi 1, 4; rồi 3, 7; rồi 6, 8. Phương án "2, 1, 4, 3, 6, 7, 8" xếp 6 cùng lớp với 3 và trước 7, nhưng sau hợp nhất 6 là con của 7 nên nằm ở lớp sâu hơn. Phương án "2, 1, 4, 3, 7, 8, 6" đảo hai con của 7, trong khi duyệt theo lớp đọc con trái 6 trước con phải 8. Phương án "4, 2, 7, 1, 3, 6, 8" lấy nút phải nhất 4 lên làm gốc, đó là kiểu xoá sao chép chứ không phải hợp nhất.
Mở trang câu hỏi này →
Aby this way computer can keep track only the address of the first element and the addresses of other elements can be calculated
Bthe architecture of computer memory does not allow arrays to store other than serially
Lời giải
Đáp án đúng: "by this way computer can keep track only the address of the first element and the addresses of other elements can be calculated". Nhờ các phần tử nằm liên tiếp và mỗi phần tử chiếm đúng cùng số byte, địa chỉ của phần tử thứ i tính được bằng địa chỉ đầu cộng i nhân kích thước một phần tử, nên truy cập theo chỉ số mất thời gian hằng số và chương trình chỉ cần lưu một địa chỉ gốc. Phương án "the architecture of computer memory does not allow arrays to store other than serially" quy việc đó cho phần cứng, nhưng bộ nhớ hoàn toàn cho phép lưu rời rạc: danh sách liên kết và cây để các nút rải rác khắp vùng nhớ rồi nối nhau bằng con trỏ. Lưu liên tiếp là một lựa chọn thiết kế để đổi lấy phép tính địa chỉ, chứ không phải điều kiện bắt buộc của kiến trúc.
Mở trang câu hỏi này →
AAB
BAC
CBA
DABA
EBAA
Lời giải
Đáp án đúng: "BA". LZW giữ một chuỗi đang khớp và chỉ thêm mục mới vào từ điển đúng lúc chuỗi đang khớp cộng ký tự vừa đọc không còn trong từ điển, mục mới chính là chuỗi dài hơn ấy. Lần theo AABAACAABD với từ điển đầu gồm (1) là A, (2) là B, (3) là C, (4) là D: chuỗi khớp A gặp A nên AA chưa có, phát (1) và thêm AA thành (5); chuỗi khớp A gặp B nên AB chưa có, phát (1) và thêm AB thành (6); chuỗi khớp B gặp A nên BA chưa có, phát (2) và thêm BA thành (7). Vậy mã (7) chỉ chuỗi BA. Vì vậy "AB" sai vì đó là mục (6), được thêm ở bước ngay trước; "AC" sai vì khi đọc tới C thì chuỗi đang khớp đã là AA nên mục thêm lúc đó là AAC mang mã (8), cặp AC không bao giờ vào từ điển; "ABA" sai vì mục ba ký tự chỉ sinh ra sau khi khớp được một mục hai ký tự, mà AB không bao giờ được khớp lại trong phần còn lại của thông điệp; "BAA" sai vì cũng vậy, BA chỉ xuất hiện một lần duy nhất nên không bao giờ được khớp để mở rộng.
Mở trang câu hỏi này →
ABinary trees
BBinary search trees
CHeaps
DNone of others
Lời giải
Đáp án đúng: "Binary search trees". Cây tìm kiếm nhị phân có bất biến: mọi khoá trong cây con trái nhỏ hơn khoá ở gốc, mọi khoá trong cây con phải lớn hơn. Duyệt giữa đi con trái, thăm gốc, rồi con phải, nên nó in hết phần nhỏ hơn trước, rồi khoá hiện tại, rồi phần lớn hơn; lập luận đó đúng ở mọi nút nên dãy thu được tăng dần. "Binary trees" chỉ ràng buộc mỗi nút có nhiều nhất hai con, không ràng buộc gì về giá trị, nên duyệt giữa cho một dãy tuỳ hình dạng cây. "Heaps" chỉ bảo đảm quan hệ cha con theo một chiều, chẳng hạn cha không lớn hơn hai con, nhưng không nói gì về quan hệ giữa hai cây con, nên duyệt giữa của đống không cho dãy có thứ tự; muốn dãy tăng dần từ đống phải lấy phần tử gốc ra nhiều lần liên tiếp. "None of others" sai vì trường hợp cây tìm kiếm nhị phân đúng như đã chỉ ra.
Mở trang câu hỏi này →
Ac, e, a
Be, d, a
Cb, c, e
Db, c, d
Lời giải
Đáp án đúng: "b, c, e". Các cạnh là a–b, b–c, b–d, c–d, c–e, e–f, e–g, e–h, f–g và g–h. Đỉnh khớp là đỉnh mà bỏ nó cùng mọi cạnh của nó thì đồ thị rời thêm: bỏ b thì a mất đường duy nhất nên tách ra; bỏ c thì cụm a, b, d mất liên lạc với cụm e, f, g, h vì c–e là mối nối duy nhất; bỏ e thì f, g, h tuy còn nối nhau qua f–g và g–h nhưng không còn đường nào về phía c. "c, e, a" kể thêm a, mà a chỉ có một cạnh nên bỏ a đi phần còn lại vẫn liên thông; đỉnh bậc một không bao giờ là đỉnh khớp. "e, d, a" kể d, nhưng d nằm trên chu trình b–c–d nên bỏ d thì b và c vẫn nối nhau trực tiếp. "b, c, d" đúng hai đỉnh đầu nhưng thay e bằng d, trong khi bỏ d không làm rời đồ thị còn bỏ e thì cắt cụm f, g, h khỏi phần còn lại.
Mở trang câu hỏi này →
Đề bài
while(there are more characters in the word to read)

{read a character if a character is '*' then pop the stack

Đề bài
    else
     push the character into the stack
 }
while(the stack is not empty)

pop and write the popped character to the screen What is written to the screen for the input "GoodM**orn****in*g" ?

AgioG
BgioM
Cgiod
DGoig
Lời giải
Đáp án đúng: "gioG". Ở đoạn mã này dấu sao chỉ lấy bỏ phần tử trên đỉnh mà không in; chỉ sau khi đọc hết chuỗi mới lấy ra lần lượt và in, nên kết quả là phần còn lại đọc ngược. Nạp G, o, o, d, M; hai dấu sao bỏ M rồi d. Nạp o, r, n; bốn dấu sao bỏ n, r, o rồi o. Nạp i, n; một dấu sao bỏ n. Nạp g và hết chuỗi, ngăn xếp còn G, o, i, g nên in ngược từ đỉnh xuống. Chuỗi "gioM" kết thúc bằng M, mà M đã bị dấu sao thứ nhất lấy bỏ nên không còn trong ngăn xếp. Chuỗi "giod" kết thúc bằng d, cũng là ký tự đã bị dấu sao thứ hai lấy bỏ. Chuỗi "Goig" liệt kê theo đúng chiều nạp vào, trong khi vòng lặp cuối lấy từ đỉnh nên phần tử nạp sau cùng là g phải ra trước và G ra sau chót.
Mở trang câu hỏi này →
AO(n)
BO(n^2)
CO(nlogn)
DO(1)
Lời giải
Đáp án đúng: "O(n)". Danh sách liên kết đôi không lưu sẵn số phần tử, nên muốn đếm thì phải bắt đầu từ head và đi theo liên kết next cho tới khi hết, mỗi nút được ghé đúng một lần và tăng biến đếm một lần; với n nút thì chi phí tỉ lệ thuận với n. Hai chiều liên kết giúp đi lùi và xoá nút nhanh, nhưng không cho nhảy nhiều nút một bước nên không rút ngắn phép đếm. "O(n^2)" sai vì không có vòng lặp lồng nào, mỗi nút chỉ ghé một lần. "O(nlogn)" sai vì đó là mức chi phí của các thuật toán chia để trị như sắp xếp trộn, còn đếm chỉ là một lượt đi thẳng. "O(1)" sai trong phạm vi câu hỏi: nó chỉ đúng nếu danh sách giữ thêm một biến size được cập nhật mỗi lần thêm hoặc bớt, khi đó không còn là đếm mà là đọc giá trị đã lưu.
Mở trang câu hỏi này →
AA, B, E, C
BA, B, D, E, C
CA, B, C
DA, B, D, C
Lời giải
Đáp án đúng: "A, B, D, E, C". Các cung là A→B = 2, A→D = 20, A→E = 5, A→C = 10, B→D = 1, D→C = 4, E→D = 10, E→C = 1. Chọn A với khoảng cách 0, cập nhật B = 2, E = 5, C = 10, D = 20. Nhỏ nhất là B = 2 nên B vào S; qua B→D = 1 thì D hạ xuống 2 + 1 = 3. Nhỏ nhất kế tiếp là D = 3 nên D vào S; qua D→C = 4 thì C hạ xuống 3 + 4 = 7. Tiếp đến E = 5 vào S; qua E→C = 1 thì C hạ tiếp xuống 5 + 1 = 6. Cuối cùng C = 6 được chọn, nên thứ tự là A, B, D, E, C. Phương án "A, B, C" coi C = 10 là chốt ngay sau khi A và B vào S, bỏ qua D = 3 và E = 5 đều nhỏ hơn. Phương án "A, B, D, C" bỏ E = 5 dù 5 nhỏ hơn giá trị 7 của C lúc đó, mà chính E mới hạ C xuống 6. Phương án "A, B, E, C" bỏ D = 3, trong khi cung B→D = 1 vừa hạ D xuống 3 nên D phải vào S ngay sau B.
Mở trang câu hỏi này →
A6, 2, 7, 5, 1, 3, 8, 4
B6, 7, 5, 2, 8, 4, 3, 1
C6, 2, 7, 5, 1, 8, 4, 3
D1, 2, 6, 7, 5, 3, 4, 8
Lời giải
Đáp án đúng: "6, 2, 7, 5, 1, 3, 8, 4". Duyệt trung tố đi nhánh trái, rồi gốc, rồi nhánh phải. Cây có gốc 1, nhánh trái 2 với hai con 6 và 5, dưới 5 là con trái 7, nhánh phải 3 chỉ có con phải 4, dưới 4 là con trái 8. Trong nhánh trái: 6 là lá nên ra trước, rồi gốc nhánh 2, rồi vào 5 mà 5 có con trái 7 nên 7 ra trước 5, được 6, 2, 7, 5. Gốc 1 nằm giữa dãy. Nhánh phải: 3 không có con trái nên ra ngay, rồi vào 4 và con trái 8 ra trước 4, được 3, 8, 4. Dãy "6, 7, 5, 2, 8, 4, 3, 1" là kết quả duyệt hậu tố, nhận ra vì gốc 1 đứng cuối dãy. Dãy "6, 2, 7, 5, 1, 8, 4, 3" đúng tới gốc 1 nhưng thăm 8 và 4 trước 3, trong khi 3 không có con trái nên phải được in ngay lúc bước vào nhánh phải. Dãy "1, 2, 6, 7, 5, 3, 4, 8" bắt đầu bằng gốc, dấu hiệu của duyệt tiền tố; trung tố chỉ thăm gốc sau khi in xong toàn bộ nhánh trái.
Mở trang câu hỏi này →
1278Consider the following function:5 lựa chọncó code
Đề bài
int fun(int n)
     {if(n==1 || n==2)
        return(1);
        else
        return(fun(n-1) +3*fun(n-2));
     }

What is the value of fun(3)?

A5
B12
C3
D4
E11
Lời giải
Đáp án đúng: "4". Hàm dừng khi n bằng 1 hoặc 2 với giá trị trả về 1, còn lại trả fun(n-1) cộng 3 lần fun(n-2), chú ý hệ số 3 chỉ nhân vào hạng tử fun(n-2). Với n bằng 3: fun(3) = fun(2) + 3 × fun(1) = 1 + 3 × 1 = 4; toàn bộ dấu vết chỉ gồm ba lời gọi fun(3), fun(2) và fun(1), hai lời gọi sau là trường hợp cơ sở nên không mở thêm nhánh nào. Vì vậy "3" sai vì nó chỉ lấy 3 × fun(1) và bỏ mất hạng tử fun(2) bằng 1; "5" sai vì nó ứng với việc coi trường hợp cơ sở trả về chính n, tức fun(2) bằng 2 cho 2 + 3 = 5, trong khi mã trả về 1 cho cả n bằng 1 và n bằng 2; "12" sai vì nó bằng 3 lần kết quả đúng, tức nhân hệ số 3 vào cả tổng thay vì chỉ vào fun(n-2); "11" sai vì nó không phải giá trị của fun ở bất kỳ đối số nào, dãy giá trị đầu là 1, 1, 4, 7.
Mở trang câu hỏi này →
1279Select the most correct statement:4 lựa chọn
AIn a linked list, the tail node is introduced for performance purpose only.
BIn a linked list, there must be the tail node.
CThe tail node is necessary for inserting a node after the last node
DThe tail node is necessary for inserting a node before the last node
Lời giải
Đáp án đúng: "In a linked list, the tail node is introduced for performance purpose only.". Một danh sách liên kết chỉ cần biến head là đủ để biểu diễn trọn vẹn dữ liệu: muốn tới nút cuối thì dò từ head cho tới khi gặp nút có next là null. Giữ thêm biến tail không thêm thông tin nào mà chỉ rút ngắn thao tác ở cuối danh sách từ O(n) xuống O(1), nên nó thuần là chuyện hiệu năng. "In a linked list, there must be the tail node." sai vì rất nhiều hiện thực chỉ có head vẫn chạy đúng mọi phép thêm, xoá, tìm. "The tail node is necessary for inserting a node after the last node" sai vì không có tail ta vẫn chèn được vào sau nút cuối, chỉ phải dò một lượt để tìm nút cuối. "The tail node is necessary for inserting a node before the last node" càng sai: trên danh sách liên kết đơn, chèn trước nút cuối cần nút đứng trước nút cuối, mà tail không cho biết nút ấy nên vẫn phải dò từ head.
Mở trang câu hỏi này →
A6, 1, 8, 2, 4, 7, 9
B6, 1, 8, 2, 7, 9, 4
C6, 2, 1, 4, 8, 7, 9
D6, 2, 8, 1, 4, 7, 9
Lời giải
Đáp án đúng: "6, 1, 8, 2, 7, 9, 4". Cây có gốc 6 với con trái 3 và con phải 8; nút 3 có con trái 1 và con phải 4; nút 1 có con phải 2; nút 8 có hai con 7 và 9. Xoá bằng cách trộn bỏ hẳn nút 3, đưa nhánh trái của nó lên thay chỗ và treo nhánh phải vào nút phải nhất của nhánh trái: nút phải nhất của nhánh 1 là 2, nên 4 thành con phải của 2 và 1 lên làm con trái của 6. Đọc theo mức: 6; rồi 1 và 8; rồi 2, 7 và 9; rồi 4 ở mức bốn. "6, 1, 8, 2, 4, 7, 9" để 4 ở mức ba cùng với 2, nhưng 4 bị treo dưới 2 nên thuộc mức bốn. "6, 2, 8, 1, 4, 7, 9" là kết quả của cách xoá bằng cách thế, tức đưa 2 là nút lớn nhất của nhánh trái lên đúng vị trí nút 3 và giữ nguyên hai nhánh. "6, 2, 1, 4, 8, 7, 9" vừa đưa 2 lên chỗ của 3 vừa đọc hết nhánh trái trước khi chạm 8, tức đi theo chiều sâu chứ không theo mức.
Mở trang câu hỏi này →