1.ง่าย
ในตารางแฮช การชนกัน (collision) คืออะไร
- Aตารางหน่วยความจำหมด
- Bคีย์ไม่สามารถแฮชได้เลย
- Cคีย์ที่เท่ากันสองตัวถูกเก็บสองครั้ง
- Dคีย์สองตัวที่ต่างกันแปลงเป็นดัชนีเดียวกัน
2.ง่าย
ฟังก์ชันแฮชทำอะไรในตารางแฮช
- Aนับว่ามีกี่คีย์ที่เก็บอยู่
- Bเรียงคีย์ในตาราง
- Cแปลงคีย์เป็นดัชนีในตาราง
- Dเข้ารหัสค่าในตาราง
3.ง่าย
โครงสร้างข้อมูลใดทำงานตามหลักการ "เข้าหลังออกก่อน" (last in, first out)
- Aสแตก (stack)
- Bตารางแฮช (hash table)
- Cลิงก์ลิสต์ (linked list)
- Dคิว (queue)
4.ปานกลาง
ในตารางแฮชที่ใช้ open addressing ตัวประกอบการโหลดสูงสุดที่เป็นไปได้คือเท่าใด
- A0.5
- Bไม่มีค่าสูงสุด
- C2
- D1
5.ปานกลาง
โหนดใน binary search tree มีต้นไม้ย่อยขวา in-order successor ของมันอยู่ที่ใด
- Aลูกขวาของมันเสมอ
- Bแม่ของมันเสมอ
- Cโหนดขวาสุดของต้นไม้ย่อยซ้าย
- Dโหนดซ้ายสุดของต้นไม้ย่อยขวา
6.ปานกลาง
ต้นไม้ทวิภาคมีราก 1 ลูกซ้าย 2 ลูกขวา 3 โหนด 2 มีลูก 4 (ซ้าย) และ 5 (ขวา) การท่องแบบ preorder คืออะไร
- A4 2 5 1 3
- B4 5 2 3 1
- C1 2 3 4 5
- D1 2 4 5 3
7.ยาก
โหนด AVL ไม่สมดุลเพราะต้นไม้ย่อยขวาของลูกซ้ายสูงเกินไป (กรณีซ้าย–ขวา) ใช้วิธีแก้ใด
- Aหมุนซ้ายที่ลูกซ้าย แล้วหมุนขวาที่โหนด
- Bหมุนซ้ายหนึ่งครั้งที่โหนด
- Cหมุนขวาหนึ่งครั้งที่โหนด
- Dหมุนขวาที่ลูกซ้าย แล้วหมุนซ้ายที่โหนด
8.ยาก
ในบัฟเฟอร์วงกลม front == rear อาจหมายถึงว่างหรือเต็ม วิธีทั่วไปในการแยกสองกรณีคืออะไร
- Aทำให้ขนาดบัฟเฟอร์เป็นเลขกำลังสอง
- Bเก็บจำนวนสมาชิกแยกต่างหาก หรือเว้นหนึ่งช่องไว้เสมอ
- Cเก็บ front และ rear ในตัวแปรเดียวกัน
- Dล้างบัฟเฟอร์ทุกครั้งที่ front เท่ากับ rear ดังนั้นสถานะจึงเป็นว่าง
เฉลย
- 1. D · คีย์สองตัวที่ต่างกันแปลงเป็นดัชนีเดียวกัน
- 2. C · แปลงคีย์เป็นดัชนีในตาราง
- 3. A · สแตก (stack)
- 4. D · 1
- 5. D · โหนดซ้ายสุดของต้นไม้ย่อยขวา
- 6. D · 1 2 4 5 3
- 7. A · หมุนซ้ายที่ลูกซ้าย แล้วหมุนขวาที่โหนด
- 8. B · เก็บจำนวนสมาชิกแยกต่างหาก หรือเว้นหนึ่งช่องไว้เสมอ
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com