1.ง่าย
การดำเนินการ peek (หรือ top) บนสแตกทำอะไร
- Aคืนสมาชิกบนสุดโดยไม่เอาออก
- Bเอาสมาชิกบนสุดออกและคืนค่า
- Cเอาสมาชิกทั้งหมดออกจากสแตก
- Dคืนสมาชิกล่างสุดของสแตก
2.ง่าย
ในตารางแฮช การชนกัน (collision) คืออะไร
- Aคีย์สองตัวที่ต่างกันแปลงเป็นดัชนีเดียวกัน
- Bคีย์ที่เท่ากันสองตัวถูกเก็บสองครั้ง
- Cคีย์ไม่สามารถแฮชได้เลย
- Dตารางหน่วยความจำหมด
3.ง่าย
deque (double-ended queue) คืออะไร
- Aโครงสร้างที่อนุญาตให้แทรกและเอาออกที่ทั้งสองปลาย
- Bคิวที่อนุญาตให้เอาออกจากด้านหลังเท่านั้น
- Cคิวสองคิวที่ใช้อาร์เรย์ร่วมกัน
- Dคิวที่เรียงตามลำดับความสำคัญ
4.ปานกลาง
นิพจน์ postfix 3 4 + 2 * มีค่าเท่าใด
- A24
- B14
- C11
- D10
5.ปานกลาง
บัฟเฟอร์วงกลม (circular buffer หรือ ring buffer) มักใช้สร้าง
- Aคิวขนาดคงที่
- Bการท่องกราฟ
- Cฟังก์ชันแฮช
- Dต้นไม้ค้นหาแบบทวิภาค
6.ปานกลาง
จะเกิดอะไรขึ้นเมื่อตารางแฮช rehash หลังตัวประกอบการโหลดเกินเกณฑ์
- Aจัดสรรตารางใหม่ที่ใหญ่กว่าและแทรกทุกคีย์ใหม่
- Bคีย์ที่มีอยู่ถูกเรียงในที่เดิม
- Cย้ายเฉพาะคีย์ที่ชนกันไปยังลิสต์ล้นใหม่ที่ท้ายตาราง
- Dคีย์เก่าที่สุดถูกลบเพื่อให้มีที่ว่าง
7.ยาก
อาร์เรย์พลวัตเพิ่มเป็นสองเท่าเมื่อเต็ม เหตุใดหลายการสร้างจึงหดมันเมื่อเหลือเพียงหนึ่งในสี่เท่านั้น ไม่ใช่ครึ่งหนึ่ง
- Aเพื่อหลีกเลี่ยงการปรับขนาดซ้ำเมื่อ push และ pop สลับกันใกล้ขอบเขต
- Bเพราะตัวจัดสรรหน่วยความจำคืนหน่วยความจำได้เฉพาะเป็นหนึ่งในสี่ของบล็อกเท่านั้น
- Cเพราะการหดที่ครึ่งหนึ่งทำให้สมาชิกหาย
- Dเพื่อให้อาร์เรย์เรียงลำดับ
8.ยาก
การค้นหาคีย์ใด ๆ ในฮีป min ทวิภาคที่มี n สมาชิกใช้เวลาเท่าใด
- AO(n)
- BO(log log n)
- CO(log n)
- DO(1)
เฉลย
- 1. A · คืนสมาชิกบนสุดโดยไม่เอาออก
- 2. A · คีย์สองตัวที่ต่างกันแปลงเป็นดัชนีเดียวกัน
- 3. A · โครงสร้างที่อนุญาตให้แทรกและเอาออกที่ทั้งสองปลาย
- 4. B · 14
- 5. A · คิวขนาดคงที่
- 6. A · จัดสรรตารางใหม่ที่ใหญ่กว่าและแทรกทุกคีย์ใหม่
- 7. A · เพื่อหลีกเลี่ยงการปรับขนาดซ้ำเมื่อ push และ pop สลับกันใกล้ขอบเขต
- 8. A · O(n)
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com