1.ง่าย
โครงสร้างข้อมูลใดเหมาะที่สุดสำหรับฟีเจอร์ "ย้อนกลับ" (undo) ในโปรแกรมแก้ไขข้อความ
- Aสแตก (stack)
- Bคิว (queue)
- Cเซตแฮช (hash set)
- Dกราฟ (graph)
2.ง่าย
ในการแทนกราฟด้วยรายการประชิด (adjacency list) เก็บอะไรสำหรับแต่ละจุดยอด
- Aรายการของจุดยอดข้างเคียง
- Bจำนวนเส้นเชื่อมทั้งหมดในกราฟ
- Cแถวของค่าบูลีน V ค่า
- Dเส้นทางสั้นที่สุดไปยังทุกจุดยอดอื่น
3.ง่าย
รากของต้นไม้ (root) คืออะไร
- Aโหนดบนสุดที่ไม่มีโหนดแม่
- Bโหนดที่มีค่ามากที่สุด
- Cโหนดใดก็ได้ตรงกลาง
- Dโหนดที่ไม่มีโหนดลูก
4.ปานกลาง
ใน min-heap ทวิภาคที่เก็บในอาร์เรย์ (ดัชนีเริ่มที่ 0) ลูกของโหนดที่ดัชนี i อยู่ที่
- Ai + 1 และ i + 2
- B2i และ 2i + 1
- C2i + 1 และ 2i + 2
- Di/2 และ i/2 + 1
5.ปานกลาง
จะเกิดอะไรขึ้นเมื่อตารางแฮช rehash หลังตัวประกอบการโหลดเกินเกณฑ์
- Aย้ายเฉพาะคีย์ที่ชนกันไปยังลิสต์ล้นใหม่ที่ท้ายตาราง
- Bคีย์เก่าที่สุดถูกลบเพื่อให้มีที่ว่าง
- Cคีย์ที่มีอยู่ถูกเรียงในที่เดิม
- Dจัดสรรตารางใหม่ที่ใหญ่กว่าและแทรกทุกคีย์ใหม่
6.ปานกลาง
แทรกคีย์ 50, 30, 70, 20, 40 ตามลำดับนี้ลงใน binary search tree ว่าง ลูกซ้ายของ 30 คืออะไร
- A50
- B20
- C40
- D70
7.ยาก
อัลกอริทึมของ Kahn สำหรับการเรียงทอพอโลยีลบจุดยอดที่มี in-degree 0 ซ้ำ ๆ โครงสร้างใดเก็บจุดยอดเหล่านั้น
- Amax-heap เรียงตาม out-degree
- Bสแตกของเส้นเชื่อมที่เยี่ยมทั้งหมด
- Cคิว (หรือคอลเล็กชันใดก็ได้) ของจุดยอดที่มี in-degree เป็น 0
- Dเมทริกซ์ประชิดที่บันทึกว่าจุดยอดใดถูกลบไปแล้ว
8.ยาก
การกลับลิงก์ลิสต์เชิงเดี่ยวในที่เดิมมีต้นทุนด้านเวลาและพื้นที่เพิ่มเติมเท่าใด
- Aเวลา O(n log n) และพื้นที่เพิ่ม O(1)
- Bเวลา O(1) และพื้นที่เพิ่ม O(1)
- Cเวลา O(n) และพื้นที่เพิ่ม O(n)
- Dเวลา O(n) และพื้นที่เพิ่ม O(1)
เฉลย
- 1. A · สแตก (stack)
- 2. A · รายการของจุดยอดข้างเคียง
- 3. A · โหนดบนสุดที่ไม่มีโหนดแม่
- 4. C · 2i + 1 และ 2i + 2
- 5. D · จัดสรรตารางใหม่ที่ใหญ่กว่าและแทรกทุกคีย์ใหม่
- 6. B · 20
- 7. C · คิว (หรือคอลเล็กชันใดก็ได้) ของจุดยอดที่มี in-degree เป็น 0
- 8. D · เวลา O(n) และพื้นที่เพิ่ม O(1)
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com