1.ง่าย
โครงสร้างข้อมูลใดทำงานตามหลักการ "เข้าหลังออกก่อน" (last in, first out)
- Aสแตก (stack)
- Bคิว (queue)
- Cตารางแฮช (hash table)
- Dลิงก์ลิสต์ (linked list)
2.ง่าย
กราฟประกอบด้วย
- Aจุดยอด (โหนด) ที่เชื่อมต่อกันด้วยเส้นเชื่อม
- Bคีย์และแฮชเท่านั้น
- Cรากและใบเท่านั้น
- Dแถวและคอลัมน์
3.ง่าย
ความสูงของต้นไม้มักถูกนิยามว่า
- Aจำนวนใบในต้นไม้
- Bจำนวนลูกของราก
- Cจำนวนโหนดทั้งหมดในต้นไม้ นับทั้งรากและใบทุกใบ
- Dจำนวนเส้นเชื่อมบนเส้นทางที่ยาวที่สุดจากรากไปยังใบ
4.ปานกลาง
หาคีย์ที่น้อยที่สุดใน binary search tree ได้อย่างไร
- Aตามลูกขวาจากรากจนไม่มีลูกขวา
- Bเยี่ยมทุกใบและเปรียบเทียบกัน
- Cดูเฉพาะราก
- Dตามลูกซ้ายจากรากจนไม่มีลูกซ้าย
5.ปานกลาง
ต้นไม้ AVL รักษาเงื่อนไขสมดุลใดที่ทุกโหนด
- Aต้นไม้ย่อยทั้งสองของทุกโหนดมีจำนวนโหนดเท่ากันพอดี
- Bความสูงของต้นไม้ย่อยซ้ายและขวาต่างกันไม่เกิน 1
- Cใบทั้งหมดอยู่ที่ความลึกเดียวกันพอดี
- Dทุกโหนดถูกระบายสีแดงหรือดำ
6.ปานกลาง
เหตุใดการท่องอาร์เรย์จึงเร็วกว่าการท่องลิงก์ลิสต์ที่ยาวเท่ากันมากในทางปฏิบัติ
- Aสมาชิกของอาร์เรย์ต่อเนื่องกัน จึงใช้แคชของ CPU ได้ดี
- Bอาร์เรย์ใช้คำสั่งน้อยกว่าในการเปรียบเทียบค่า
- Cลิงก์ลิสต์เก็บสมาชิกบนดิสก์เสมอ
- Dการท่องอาร์เรย์เป็น O(1) โดยรวม ส่วนการท่องลิงก์ลิสต์เป็น O(n)
7.ยาก
Fenwick tree (binary indexed tree) บนอาร์เรย์ที่มีตัวเลข n ตัว รองรับการดำเนินการใดใน O(log n)
- Aการหามัธยฐานใน O(1)
- Bการแทรกสมาชิกที่ตำแหน่งใดก็ได้
- Cคำถามผลรวมคำนำหน้าและการอัปเดตสมาชิกเดียว
- Dการเรียงอาร์เรย์และการค้นหาแบบทวิภาค
8.ยาก
หากไม่มี union by rank หรือ path compression ต้นทุนในกรณีเลวร้ายที่สุดของ find หนึ่งครั้งในโครงสร้าง union-find ที่มี n สมาชิกคือเท่าใด
- AO(1)
- BO(n)
- CO(log n)
- DO(α(n))
เฉลย
- 1. A · สแตก (stack)
- 2. A · จุดยอด (โหนด) ที่เชื่อมต่อกันด้วยเส้นเชื่อม
- 3. D · จำนวนเส้นเชื่อมบนเส้นทางที่ยาวที่สุดจากรากไปยังใบ
- 4. D · ตามลูกซ้ายจากรากจนไม่มีลูกซ้าย
- 5. B · ความสูงของต้นไม้ย่อยซ้ายและขวาต่างกันไม่เกิน 1
- 6. A · สมาชิกของอาร์เรย์ต่อเนื่องกัน จึงใช้แคชของ CPU ได้ดี
- 7. C · คำถามผลรวมคำนำหน้าและการอัปเดตสมาชิกเดียว
- 8. B · O(n)
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com