1.ง่าย
รากของต้นไม้ (root) คืออะไร
- Aโหนดที่ไม่มีโหนดลูก
- Bโหนดที่มีค่ามากที่สุด
- Cโหนดใดก็ได้ตรงกลาง
- Dโหนดบนสุดที่ไม่มีโหนดแม่
2.ง่าย
โครงสร้างข้อมูลใดใช้ท่องต้นไม้แบบ level-order
- Aสแตก
- Bคิวลำดับความสำคัญ
- Cตารางแฮช
- Dคิว
3.ง่าย
สมาชิกของอาร์เรย์ถูกเก็บในหน่วยความจำอย่างไร
- Aในตำแหน่งสุ่มที่เลือกด้วยแฮช
- Bในบล็อกต่อเนื่องเดียว ต่อกันทีละตัว
- Cกระจัดกระจาย เชื่อมด้วยตัวชี้
- Dในต้นไม้ของหน้าหน่วยความจำ
4.ปานกลาง
คุณมีการอ้างอิงถึงโหนดกลางลิสต์ ในลิสต์ชนิดใดลบมันได้ใน O(1)
- Aอาร์เรย์พลวัต
- Bลิงก์ลิสต์เชิงเดี่ยว
- Cลิงก์ลิสต์สองทิศทาง
- Dอาร์เรย์เรียงลำดับ
5.ปานกลาง
การค้นหาคำความยาว L ใน trie ที่มีตัวอักษรคงที่ใช้เวลาเท่าใด
- AO(n) เมื่อ n คือจำนวนคำ
- BO(L) ไม่ขึ้นกับจำนวนคำที่เก็บ
- CO(log n) เมื่อ n คือจำนวนคำ
- DO(L × n)
6.ปานกลาง
แทรกคีย์ 50, 30, 70, 20, 40 ตามลำดับนี้ลงใน binary search tree ว่าง ลูกซ้ายของ 30 คืออะไร
- A20
- B40
- C50
- D70
7.ยาก
เหตุใดจึงใช้ B-tree ในฐานข้อมูลและระบบไฟล์
- Aใช้หน่วยความจำน้อยกว่าอาร์เรย์ใด ๆ ดัชนีทั้งหมดจึงเก็บในหน่วยความจำหลักได้เสมอ
- Bตัวประกอบการแตกแขนงสูงทำให้ต้นไม้ตื้น ลดการอ่านดิสก์ที่ช้า
- Cเก็บข้อมูลโดยไม่เรียงลำดับ
- Dไม่ต้องปรับสมดุลใหม่
8.ยาก
วัตถุถูกเก็บเป็นคีย์ใน hash map จากนั้นฟิลด์ที่ฟังก์ชันแฮชใช้ถูกเปลี่ยน ผลลัพธ์ที่น่าจะเกิดคืออะไร
- Amap โยนข้อผิดพลาดทันทีที่ฟิลด์เปลี่ยน
- Bmap ย้ายคีย์ไปถังใหม่โดยอัตโนมัติ
- Cการค้นหาวัตถุอาจล้มเหลว เพราะมันอยู่ในถังของแฮชเก่า
- Dไม่มีอะไรเปลี่ยน เพราะแฮชของคีย์คำนวณเพียงครั้งเดียวตอนโปรแกรมเริ่มทำงาน
เฉลย
- 1. D · โหนดบนสุดที่ไม่มีโหนดแม่
- 2. D · คิว
- 3. B · ในบล็อกต่อเนื่องเดียว ต่อกันทีละตัว
- 4. C · ลิงก์ลิสต์สองทิศทาง
- 5. B · O(L) ไม่ขึ้นกับจำนวนคำที่เก็บ
- 6. A · 20
- 7. B · ตัวประกอบการแตกแขนงสูงทำให้ต้นไม้ตื้น ลดการอ่านดิสก์ที่ช้า
- 8. C · การค้นหาวัตถุอาจล้มเหลว เพราะมันอยู่ในถังของแฮชเก่า
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com