1.ง่าย
ในกราฟไม่มีทิศทาง ดีกรี (degree) ของจุดยอดคืออะไร
- Aตำแหน่งของมันในรายการประชิด
- Bจำนวนจุดยอดในกราฟ
- Cความยาวของเส้นทางที่ยาวที่สุดจากมัน
- Dจำนวนเส้นเชื่อมที่ต่ออยู่กับมัน
2.ง่าย
การดำเนินการ peek (หรือ top) บนสแตกทำอะไร
- Aคืนสมาชิกล่างสุดของสแตก
- Bคืนสมาชิกบนสุดโดยไม่เอาออก
- Cเอาสมาชิกบนสุดออกและคืนค่า
- Dเอาสมาชิกทั้งหมดออกจากสแตก
3.ง่าย
ในต้นไม้ ใบ (leaf) คืออะไร
- Aโหนดที่ไม่มีโหนดแม่
- Bโหนดที่มีลูกหนึ่งตัวพอดี
- Cโหนดที่ไม่มีโหนดลูก
- Dโหนดที่มีค่ามากที่สุด
4.ปานกลาง
โครงสร้างข้อมูลใดใช้ตรวจว่าวงเล็บใน "{[()]}" สมดุลหรือไม่
- Aสแตก
- Bคิว
- Cbinary search tree
- Dตารางแฮช
5.ปานกลาง
รายการประชิดใช้หน่วยความจำเท่าใดสำหรับกราฟที่มี V จุดยอดและ E เส้นเชื่อม
- AO(V²)
- BO(V + E)
- CO(E²)
- DO(V × E)
6.ปานกลาง
การค้นหาคำความยาว L ใน trie ที่มีตัวอักษรคงที่ใช้เวลาเท่าใด
- AO(log n) เมื่อ n คือจำนวนคำ
- BO(L × n)
- CO(L) ไม่ขึ้นกับจำนวนคำที่เก็บ
- DO(n) เมื่อ n คือจำนวนคำ
7.ยาก
ในอัลกอริทึมต้นไม้ทอดข้ามที่น้อยที่สุดของ Kruskal โครงสร้าง union-find ใช้เพื่อ
- Aตรวจว่าปลายทั้งสองของเส้นเชื่อมเชื่อมต่อกันอยู่แล้วหรือไม่
- Bเลือกจุดยอดเริ่มต้น
- Cเรียงเส้นเชื่อมตามน้ำหนัก
- Dเก็บระยะทางปัจจุบันของแต่ละจุดยอดจากต้นทางระหว่างการค้นหา
8.ยาก
ในบัฟเฟอร์วงกลม front == rear อาจหมายถึงว่างหรือเต็ม วิธีทั่วไปในการแยกสองกรณีคืออะไร
- Aเก็บ front และ rear ในตัวแปรเดียวกัน
- Bเก็บจำนวนสมาชิกแยกต่างหาก หรือเว้นหนึ่งช่องไว้เสมอ
- Cทำให้ขนาดบัฟเฟอร์เป็นเลขกำลังสอง
- Dล้างบัฟเฟอร์ทุกครั้งที่ front เท่ากับ rear ดังนั้นสถานะจึงเป็นว่าง
เฉลย
- 1. D · จำนวนเส้นเชื่อมที่ต่ออยู่กับมัน
- 2. B · คืนสมาชิกบนสุดโดยไม่เอาออก
- 3. C · โหนดที่ไม่มีโหนดลูก
- 4. A · สแตก
- 5. B · O(V + E)
- 6. C · O(L) ไม่ขึ้นกับจำนวนคำที่เก็บ
- 7. A · ตรวจว่าปลายทั้งสองของเส้นเชื่อมเชื่อมต่อกันอยู่แล้วหรือไม่
- 8. B · เก็บจำนวนสมาชิกแยกต่างหาก หรือเว้นหนึ่งช่องไว้เสมอ
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com