1.ง่าย
ลักษณะเด่นของเซต (set) ในฐานะชนิดข้อมูลนามธรรมคืออะไร
- Aเก็บสมาชิกเรียงลำดับ
- Bเก็บคู่คีย์–ค่า
- Cเข้าถึงได้เฉพาะที่ปลายด้านเดียว
- Dเก็บสมาชิกโดยไม่มีซ้ำ
2.ง่าย
การดำเนินการใดเป็น O(1) สำหรับอาร์เรย์แต่เป็น O(n) สำหรับลิงก์ลิสต์เชิงเดี่ยว
- Aการลบสมาชิกหัว
- Bการอ่านสมาชิกตัวแรก
- Cการเข้าถึงสมาชิกที่ดัชนี i
- Dการแทรกที่หัว
3.ง่าย
ในตารางแฮช การชนกัน (collision) คืออะไร
- Aคีย์สองตัวที่ต่างกันแปลงเป็นดัชนีเดียวกัน
- Bคีย์ที่เท่ากันสองตัวถูกเก็บสองครั้ง
- Cคีย์ไม่สามารถแฮชได้เลย
- Dตารางหน่วยความจำหมด
4.ปานกลาง
ต้นไม้ทวิภาคมีราก 1 ลูกซ้าย 2 ลูกขวา 3 โหนด 2 มีลูก 4 (ซ้าย) และ 5 (ขวา) การท่องแบบ postorder คืออะไร
- A4 2 5 1 3
- B4 5 2 3 1
- C1 2 4 5 3
- D5 4 3 2 1
5.ปานกลาง
คุณมีการอ้างอิงถึงโหนดกลางลิสต์ ในลิสต์ชนิดใดลบมันได้ใน O(1)
- Aอาร์เรย์พลวัต
- Bลิงก์ลิสต์เชิงเดี่ยว
- Cลิงก์ลิสต์สองทิศทาง
- Dอาร์เรย์เรียงลำดับ
6.ปานกลาง
ความซับซ้อนเชิงเวลาของการค้นหาคีย์ใน binary search tree ที่สมดุลคือเท่าใด
- AO(n)
- BO(1)
- CO(n log n)
- DO(log n)
7.ยาก
คู่การท่องใดกำหนดต้นไม้ทวิภาคที่มีคีย์ไม่ซ้ำได้เพียงแบบเดียวเสมอ
- Apreorder และ postorder
- Bpreorder และ inorder
- Cpreorder เพียงอย่างเดียว
- Dlevel-order เพียงอย่างเดียว
8.ยาก
เหตุใดเซิร์ฟเวอร์จึงเลือกฟังก์ชันแฮชแบบสุ่มจากตระกูลสากล (universal family)
- Aเพื่อตัดความจำเป็นในการปรับขนาดตาราง
- Bเพื่อรับประกันว่าไม่มีคีย์สองตัวชนกันเลย ไม่ว่าผู้โจมตีจะส่งคีย์ใดมา
- Cเพื่อทำให้ตารางแฮชเรียงลำดับ
- Dเพื่อทำให้ผู้โจมตีเลือกคีย์จำนวนมากที่ชนกันทั้งหมดได้ยากมาก
เฉลย
- 1. D · เก็บสมาชิกโดยไม่มีซ้ำ
- 2. C · การเข้าถึงสมาชิกที่ดัชนี i
- 3. A · คีย์สองตัวที่ต่างกันแปลงเป็นดัชนีเดียวกัน
- 4. B · 4 5 2 3 1
- 5. C · ลิงก์ลิสต์สองทิศทาง
- 6. D · O(log n)
- 7. B · preorder และ inorder
- 8. D · เพื่อทำให้ผู้โจมตีเลือกคีย์จำนวนมากที่ชนกันทั้งหมดได้ยากมาก
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com