1.ง่าย
ตัวประกอบการโหลด (load factor) ของตารางแฮชคืออะไร
- Aจำนวนการชนกันจนถึงตอนนี้
- Bจำนวนถังหารด้วยความยาวเฉลี่ยของคีย์ที่เก็บ
- Cจำนวนสมาชิกที่เก็บหารด้วยจำนวนถัง
- Dเวลาที่ใช้โหลดตารางจากดิสก์
2.ง่าย
การดำเนินการ peek (หรือ top) บนสแตกทำอะไร
- Aคืนสมาชิกล่างสุดของสแตก
- Bคืนสมาชิกบนสุดโดยไม่เอาออก
- Cเอาสมาชิกทั้งหมดออกจากสแตก
- Dเอาสมาชิกบนสุดออกและคืนค่า
3.ง่าย
โครงสร้างใดมักใช้สร้างคิวลำดับความสำคัญ (priority queue)
- Aสแตก (stack)
- Bลิงก์ลิสต์เชิงเดี่ยวที่ไม่เรียงลำดับ
- Cฮีป (heap)
- Dสตริง
4.ปานกลาง
ต้นไม้ทวิภาคมีราก 1 ลูกซ้าย 2 ลูกขวา 3 โหนด 2 มีลูก 4 (ซ้าย) และ 5 (ขวา) การท่องแบบ preorder คืออะไร
- A4 5 2 3 1
- B4 2 5 1 3
- C1 2 3 4 5
- D1 2 4 5 3
5.ปานกลาง
เมทริกซ์ประชิด (adjacency matrix) ของกราฟที่มี V จุดยอดใช้หน่วยความจำเท่าใด
- AO(log V)
- BO(E)
- CO(V²)
- DO(V + E)
6.ปานกลาง
ต้นไม้ AVL และต้นไม้แดง–ดำ (red-black) รับประกัน
- Aไม่มีโหนดใดมีลูกสองตัว
- Bการค้นหาในเวลาคงที่ทุกกรณี
- Cคีย์ถูกเก็บตามลำดับการแทรก
- Dความสูง O(log n) ผ่านการปรับสมดุลใหม่
7.ยาก
คุณต้องเก็บค่าที่น้อยที่สุด k ตัวจากสตรีมของตัวเลข n ตัวโดยใช้หน่วยความจำ O(k) แนวทางใดทำงานใน O(n log k)
- Aคิว FIFO ของ k ค่าล่าสุด
- Bmax-heap ขนาด k โดยแทนที่รากเมื่อมีค่าที่เล็กกว่ามา
- Cอาร์เรย์เรียงลำดับของค่าทั้ง n
- Dmin-heap ที่เก็บค่าทั้ง n ตัว แล้วดึงค่าที่น้อยที่สุด k ตัวออกมาตอนท้าย
8.ยาก
ในตารางแฮชที่ใช้ open addressing เหตุใดการลบจึงมักทำด้วยเครื่องหมาย "tombstone"
- Aการทำให้ช่องว่างอาจทำลายลำดับการตรวจสอบสำหรับคีย์อื่น
- Bคีย์ที่ลบต้องเก็บไว้ตลอดไปเพื่อความปลอดภัย จึงใช้ช่องนั้นซ้ำไม่ได้
- Ctombstone เร่งการแฮช
- Dทำให้ตารางเรียงลำดับ
เฉลย
- 1. C · จำนวนสมาชิกที่เก็บหารด้วยจำนวนถัง
- 2. B · คืนสมาชิกบนสุดโดยไม่เอาออก
- 3. C · ฮีป (heap)
- 4. D · 1 2 4 5 3
- 5. C · O(V²)
- 6. D · ความสูง O(log n) ผ่านการปรับสมดุลใหม่
- 7. B · max-heap ขนาด k โดยแทนที่รากเมื่อมีค่าที่เล็กกว่ามา
- 8. A · การทำให้ช่องว่างอาจทำลายลำดับการตรวจสอบสำหรับคีย์อื่น
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com