1.ง่าย
อะไรคือนิยามของต้นไม้ทวิภาค (binary tree)
- Aทุกโหนดเก็บเลขฐานสอง
- Bทุกโหนดมีลูกไม่เกินสองตัว
- Cต้นไม้มีสองระดับพอดี
- Dทุกโหนดมีลูกสองตัวพอดี
2.ง่าย
สมาชิกของอาร์เรย์ถูกเก็บในหน่วยความจำอย่างไร
- Aในบล็อกต่อเนื่องเดียว ต่อกันทีละตัว
- Bกระจัดกระจาย เชื่อมด้วยตัวชี้
- Cในตำแหน่งสุ่มที่เลือกด้วยแฮช
- Dในต้นไม้ของหน้าหน่วยความจำ
3.ง่าย
ความสูงของต้นไม้มักถูกนิยามว่า
- Aจำนวนใบในต้นไม้
- Bจำนวนโหนดทั้งหมดในต้นไม้ นับทั้งรากและใบทุกใบ
- Cจำนวนเส้นเชื่อมบนเส้นทางที่ยาวที่สุดจากรากไปยังใบ
- Dจำนวนลูกของราก
4.ปานกลาง
แทรกคีย์ 50, 30, 70, 20, 40 ตามลำดับนี้ลงใน binary search tree ว่าง ลูกซ้ายของ 30 คืออะไร
- A40
- B50
- C70
- D20
5.ปานกลาง
แอปพลิเคชันต้องการค้นหาเร็ว และต้องแสดงรายการคีย์เรียงลำดับและตอบคำถามช่วง โครงสร้างใดเหมาะที่สุด
- Aลิงก์ลิสต์ที่ไม่เรียงลำดับ
- Bตารางแฮช
- Cสแตก
- Dbinary search tree แบบสมดุล
6.ปานกลาง
ตารางแฮชขนาด 7 ใช้ h(k) = k mod 7 และ linear probing หลังแทรก 10 แล้ว 17 ถูกเก็บที่ใด
- Aดัชนี 6
- Bดัชนี 3
- Cดัชนี 0
- Dดัชนี 4
7.ยาก
segment tree มักใช้เพื่อ
- Aตอบคำถามช่วง (เช่น ผลรวมช่วง) และอัปเดตใน O(log n)
- Bเรียงสตริงตามตัวอักษรโดยเก็บแต่ละคำนำหน้าไว้ในโหนดต้นไม้แยกกัน
- Cเก็บเส้นเชื่อมของกราฟ
- Dสร้างสแตก
8.ยาก
อาร์เรย์พลวัตเพิ่มเป็นสองเท่าเมื่อเต็ม เหตุใดหลายการสร้างจึงหดมันเมื่อเหลือเพียงหนึ่งในสี่เท่านั้น ไม่ใช่ครึ่งหนึ่ง
- Aเพราะการหดที่ครึ่งหนึ่งทำให้สมาชิกหาย
- Bเพื่อให้อาร์เรย์เรียงลำดับ
- Cเพื่อหลีกเลี่ยงการปรับขนาดซ้ำเมื่อ push และ pop สลับกันใกล้ขอบเขต
- Dเพราะตัวจัดสรรหน่วยความจำคืนหน่วยความจำได้เฉพาะเป็นหนึ่งในสี่ของบล็อกเท่านั้น
เฉลย
- 1. B · ทุกโหนดมีลูกไม่เกินสองตัว
- 2. A · ในบล็อกต่อเนื่องเดียว ต่อกันทีละตัว
- 3. C · จำนวนเส้นเชื่อมบนเส้นทางที่ยาวที่สุดจากรากไปยังใบ
- 4. D · 20
- 5. D · binary search tree แบบสมดุล
- 6. D · ดัชนี 4
- 7. A · ตอบคำถามช่วง (เช่น ผลรวมช่วง) และอัปเดตใน O(log n)
- 8. C · เพื่อหลีกเลี่ยงการปรับขนาดซ้ำเมื่อ push และ pop สลับกันใกล้ขอบเขต
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com