1.ง่าย
การดำเนินการใดเป็น O(1) สำหรับอาร์เรย์แต่เป็น O(n) สำหรับลิงก์ลิสต์เชิงเดี่ยว
- Aการลบสมาชิกหัว
- Bการแทรกที่หัว
- Cการอ่านสมาชิกตัวแรก
- Dการเข้าถึงสมาชิกที่ดัชนี i
2.ง่าย
โครงสร้างข้อมูลใดเหมาะที่สุดสำหรับฟีเจอร์ "ย้อนกลับ" (undo) ในโปรแกรมแก้ไขข้อความ
- Aกราฟ (graph)
- Bคิว (queue)
- Cเซตแฮช (hash set)
- Dสแตก (stack)
3.ง่าย
สมาชิกของอาร์เรย์ถูกเก็บในหน่วยความจำอย่างไร
- Aกระจัดกระจาย เชื่อมด้วยตัวชี้
- Bในบล็อกต่อเนื่องเดียว ต่อกันทีละตัว
- Cในตำแหน่งสุ่มที่เลือกด้วยแฮช
- Dในต้นไม้ของหน้าหน่วยความจำ
4.ปานกลาง
ในคิววงกลมที่เก็บในอาร์เรย์ความจุ n ตำแหน่งถัดจากดัชนี i คำนวณอย่างไร
- Ai + 1
- B(i − 1) mod n
- C2i + 1
- D(i + 1) mod n
5.ปานกลาง
ต้นไม้ทวิภาคมีราก 1 ลูกซ้าย 2 ลูกขวา 3 โหนด 2 มีลูก 4 (ซ้าย) และ 5 (ขวา) การท่องแบบ postorder คืออะไร
- A4 2 5 1 3
- B5 4 3 2 1
- C1 2 4 5 3
- D4 5 2 3 1
6.ปานกลาง
อัลกอริทึมของ Dijkstra ใช้ชนิดข้อมูลนามธรรมใดเลือกจุดยอดถัดไปที่จะประมวลผล
- Aคิวลำดับความสำคัญแบบค่าต่ำสุด (min-priority queue)
- Bเซตที่ไม่มีลำดับ
- Cคิว FIFO
- Dสแตก
7.ยาก
คุณสมบัติใดทำให้ B-tree ทุกต้นสมดุลอย่างสมบูรณ์
- Aใบทั้งหมดอยู่ที่ความลึกเดียวกัน
- Bคีย์ถูกเก็บเฉพาะที่ราก
- Cแต่ละโหนดเก็บหนึ่งคีย์
- Dทุกโหนดมีลูกสองตัวพอดี
8.ยาก
โครงสร้างใดช่วยคำนวณค่าสูงสุดของทุกหน้าต่างขนาด k ในอาร์เรย์ในเวลารวม O(n)
- Aลิงก์ลิสต์เชิงเดี่ยวของสมาชิกในหน้าต่าง
- Bdeque ที่เก็บดัชนีเรียงตามค่าจากมากไปน้อย
- Cmin-heap ที่สร้างใหม่ทุกหน้าต่าง
- Dอาร์เรย์เรียงลำดับที่อัปเดตด้วยการเลื่อน
เฉลย
- 1. D · การเข้าถึงสมาชิกที่ดัชนี i
- 2. D · สแตก (stack)
- 3. B · ในบล็อกต่อเนื่องเดียว ต่อกันทีละตัว
- 4. D · (i + 1) mod n
- 5. D · 4 5 2 3 1
- 6. A · คิวลำดับความสำคัญแบบค่าต่ำสุด (min-priority queue)
- 7. A · ใบทั้งหมดอยู่ที่ความลึกเดียวกัน
- 8. B · deque ที่เก็บดัชนีเรียงตามค่าจากมากไปน้อย
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com