1.ง่าย
การดำเนินการของคิวที่เอาสมาชิกด้านหน้าออกเรียกว่าอะไร
- AInsert
- BEnqueue
- CPush
- DDequeue
2.ง่าย
โครงสร้างข้อมูลใดทำงานตามหลักการ "เข้าหลังออกก่อน" (last in, first out)
- Aสแตก (stack)
- Bตารางแฮช (hash table)
- Cคิว (queue)
- Dลิงก์ลิสต์ (linked list)
3.ง่าย
สมาชิกที่เล็กที่สุดของ min-heap ทวิภาคอยู่ที่ใด
- Aในใบใดก็ได้ ซึ่งต้องค้นหา
- Bในตำแหน่งสุดท้ายของอาร์เรย์
- Cที่ราก
- Dในใบซ้ายสุด
4.ปานกลาง
โปรแกรมที่ทำงานอยู่ใช้โครงสร้างข้อมูลใดติดตามการเรียกฟังก์ชันที่กำลังทำงานและตัวแปรท้องถิ่น
- Aสแตกการเรียก (call stack)
- Bbinary search tree ของเฟรม
- Cคิวหน่วยความจำฮีป
- Dตารางแฮชของฟังก์ชัน
5.ปานกลาง
ทราย (trie หรือ prefix tree) มีประสิทธิภาพเป็นพิเศษสำหรับ
- Aการเรียงตัวเลข
- Bการหาเส้นทางสั้นที่สุด
- Cการเก็บเมทริกซ์
- Dการค้นหาด้วยคำนำหน้า เช่น autocomplete
6.ปานกลาง
เหตุใดการท่องอาร์เรย์จึงเร็วกว่าการท่องลิงก์ลิสต์ที่ยาวเท่ากันมากในทางปฏิบัติ
- Aลิงก์ลิสต์เก็บสมาชิกบนดิสก์เสมอ
- Bสมาชิกของอาร์เรย์ต่อเนื่องกัน จึงใช้แคชของ CPU ได้ดี
- Cอาร์เรย์ใช้คำสั่งน้อยกว่าในการเปรียบเทียบค่า
- Dการท่องอาร์เรย์เป็น O(1) โดยรวม ส่วนการท่องลิงก์ลิสต์เป็น O(n)
7.ยาก
segment tree มักใช้เพื่อ
- Aตอบคำถามช่วง (เช่น ผลรวมช่วง) และอัปเดตใน O(log n)
- Bเก็บเส้นเชื่อมของกราฟ
- Cเรียงสตริงตามตัวอักษรโดยเก็บแต่ละคำนำหน้าไว้ในโหนดต้นไม้แยกกัน
- Dสร้างสแตก
8.ยาก
เพื่อให้ตารางแฮชทำงานถูกต้อง แฮชและความเท่ากันต้องเป็นไปตามกฎใด
- Aคีย์ที่เท่ากันต้องมีค่าแฮชเท่ากัน
- Bคีย์ที่ต่างกันต้องมีค่าแฮชต่างกัน
- Cค่าแฮชต้องเป็นจำนวนเฉพาะ
- Dค่าแฮชที่เท่ากันหมายถึงคีย์เท่ากัน
เฉลย
- 1. D · Dequeue
- 2. A · สแตก (stack)
- 3. C · ที่ราก
- 4. A · สแตกการเรียก (call stack)
- 5. D · การค้นหาด้วยคำนำหน้า เช่น autocomplete
- 6. B · สมาชิกของอาร์เรย์ต่อเนื่องกัน จึงใช้แคชของ CPU ได้ดี
- 7. A · ตอบคำถามช่วง (เช่น ผลรวมช่วง) และอัปเดตใน O(log n)
- 8. A · คีย์ที่เท่ากันต้องมีค่าแฮชเท่ากัน
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com