1.ง่าย
การท่องแบบ preorder ของต้นไม้ทวิภาคเยี่ยมโหนดตามลำดับใด
- Aต้นไม้ย่อยซ้าย แล้วต้นไม้ย่อยขวา แล้วโหนด
- Bทีละระดับจากด้านบน
- Cโหนด แล้วต้นไม้ย่อยซ้าย แล้วต้นไม้ย่อยขวา
- Dต้นไม้ย่อยซ้าย แล้วโหนด แล้วต้นไม้ย่อยขวา
2.ง่าย
อะไรคือนิยามของต้นไม้ทวิภาค (binary tree)
- Aทุกโหนดเก็บเลขฐานสอง
- Bทุกโหนดมีลูกสองตัวพอดี
- Cต้นไม้มีสองระดับพอดี
- Dทุกโหนดมีลูกไม่เกินสองตัว
3.ง่าย
โครงสร้างข้อมูลใดทำงานตามหลักการ "เข้าก่อนออกก่อน" (first in, first out)
- Aคิว (queue)
- Bสแตก (stack)
- Cต้นไม้ทวิภาค (binary tree)
- Dฮีป (heap)
4.ปานกลาง
แทรกคีย์ 50, 30, 70, 20, 40 ตามลำดับนี้ลงใน binary search tree ว่าง ลูกซ้ายของ 30 คืออะไร
- A20
- B70
- C40
- D50
5.ปานกลาง
ใน min-heap ทวิภาคที่เก็บในอาร์เรย์ (ดัชนีเริ่มที่ 0) ลูกของโหนดที่ดัชนี i อยู่ที่
- Ai + 1 และ i + 2
- B2i + 1 และ 2i + 2
- Ci/2 และ i/2 + 1
- D2i และ 2i + 1
6.ปานกลาง
สมาชิกใหม่ถูกแทรกลงในฮีปทวิภาคอย่างไร
- Aวางที่รากและเลื่อนลง
- Bวางที่ท้ายอาร์เรย์และเลื่อนขึ้น (sift up) ตราบที่ยังละเมิดคุณสมบัติฮีป
- Cสร้างฮีปใหม่ทั้งหมดตั้งแต่ต้น
- Dแทรกที่ตำแหน่งตามลำดับโดยเลื่อนสมาชิกที่ใหญ่กว่าทั้งหมดไปทางขวาหนึ่งตำแหน่ง
7.ยาก
การค้นหาคีย์ใด ๆ ในฮีป min ทวิภาคที่มี n สมาชิกใช้เวลาเท่าใด
- AO(log n)
- BO(log log n)
- CO(1)
- DO(n)
8.ยาก
การกลับลิงก์ลิสต์เชิงเดี่ยวในที่เดิมมีต้นทุนด้านเวลาและพื้นที่เพิ่มเติมเท่าใด
- Aเวลา O(n log n) และพื้นที่เพิ่ม O(1)
- Bเวลา O(n) และพื้นที่เพิ่ม O(1)
- Cเวลา O(n) และพื้นที่เพิ่ม O(n)
- Dเวลา O(1) และพื้นที่เพิ่ม O(1)
เฉลย
- 1. C · โหนด แล้วต้นไม้ย่อยซ้าย แล้วต้นไม้ย่อยขวา
- 2. D · ทุกโหนดมีลูกไม่เกินสองตัว
- 3. A · คิว (queue)
- 4. A · 20
- 5. B · 2i + 1 และ 2i + 2
- 6. B · วางที่ท้ายอาร์เรย์และเลื่อนขึ้น (sift up) ตราบที่ยังละเมิดคุณสมบัติฮีป
- 7. D · O(n)
- 8. B · เวลา O(n) และพื้นที่เพิ่ม O(1)
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com