1.ง่าย
อะไรคือนิยามของต้นไม้ทวิภาค (binary tree)
- Aทุกโหนดมีลูกสองตัวพอดี
- Bทุกโหนดเก็บเลขฐานสอง
- Cทุกโหนดมีลูกไม่เกินสองตัว
- Dต้นไม้มีสองระดับพอดี
2.ง่าย
ในต้นไม้ค้นหาแบบทวิภาค (binary search tree) ค่าในต้นไม้ย่อยซ้ายของโหนดมีค่า
- Aน้อยกว่าค่าของโหนด
- Bมากกว่าค่าของโหนด
- Cเรียงลำดับแบบสุ่ม
- Dเท่ากับค่าของโหนด
3.ง่าย
ข้อแตกต่างหลักระหว่างอาร์เรย์สถิตกับอาร์เรย์พลวัตคืออะไร
- Aอาร์เรย์สถิตเก็บได้เฉพาะตัวเลข
- Bอาร์เรย์พลวัตเก็บสมาชิกในโหนดที่เชื่อมกันจึงขยายได้ทีละหนึ่ง
- Cอาร์เรย์สถิตเข้าถึงด้วยดัชนีช้ากว่า
- Dอาร์เรย์พลวัตขยายได้โดยย้ายไปยังบล็อกหน่วยความจำที่ใหญ่กว่า
4.ปานกลาง
แทรกคีย์ 50, 30, 70, 20, 40 ตามลำดับนี้ลงใน binary search tree ว่าง ลูกซ้ายของ 30 คืออะไร
- A40
- B20
- C50
- D70
5.ปานกลาง
ต้นทุนของการแทรกสมาชิกตรงกลางอาร์เรย์ที่มี n สมาชิกคือเท่าใด
- AO(log n) เพราะการค้นหาแบบทวิภาค
- BO(1) เพราะทราบดัชนี
- CO(n) เพราะสมาชิกหลังจากนั้นต้องเลื่อน
- DO(n²) เพราะแต่ละสมาชิกย้าย n ครั้ง
6.ปานกลาง
คิวถูกสร้างด้วยสแตกสองตัว: push ลงสแตก "in" และ pop จากสแตก "out" โดยเติมจาก "in" เมื่อว่าง ต้นทุนกระจายต่อการดำเนินการคือเท่าใด
- AO(log n)
- BO(n)
- CO(n²)
- DO(1)
7.ยาก
ข้อได้เปรียบหลักของ skip list เหนือลิงก์ลิสต์ที่เรียงลำดับคืออะไร
- Aเก็บคีย์โดยไม่เรียงลำดับ
- Bการค้นหา O(log n) คาดหมาย โดยใช้ตัวชี้ไปข้างหน้าหลายระดับ
- Cไม่ใช้หน่วยความจำเพิ่ม
- Dรับประกันการค้นหา O(1) เพราะทุกโหนดเก็บตัวชี้ไปยังทุกโหนดอื่น
8.ยาก
เวลาทำงานของการค้นหาในแนวกว้างบนกราฟที่มี V จุดยอดที่เก็บเป็นเมทริกซ์ประชิดคือเท่าใด
- AO(E log V)
- BO(V²)
- CO(V + E)
- DO(V)
เฉลย
- 1. C · ทุกโหนดมีลูกไม่เกินสองตัว
- 2. A · น้อยกว่าค่าของโหนด
- 3. D · อาร์เรย์พลวัตขยายได้โดยย้ายไปยังบล็อกหน่วยความจำที่ใหญ่กว่า
- 4. B · 20
- 5. C · O(n) เพราะสมาชิกหลังจากนั้นต้องเลื่อน
- 6. D · O(1)
- 7. B · การค้นหา O(log n) คาดหมาย โดยใช้ตัวชี้ไปข้างหน้าหลายระดับ
- 8. B · O(V²)
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com