1.ง่าย
อะไรคือนิยามของต้นไม้ทวิภาค (binary tree)
- Aทุกโหนดมีลูกไม่เกินสองตัว
- Bทุกโหนดมีลูกสองตัวพอดี
- Cต้นไม้มีสองระดับพอดี
- Dทุกโหนดเก็บเลขฐานสอง
2.ง่าย
โครงสร้างข้อมูลใดใช้ท่องต้นไม้แบบ level-order
- Aตารางแฮช
- Bคิว
- Cสแตก
- Dคิวลำดับความสำคัญ
3.ง่าย
แมป (map หรือ dictionary) เก็บอะไร
- Aค่าที่เรียงตามขนาด
- Bคู่คีย์–ค่าที่คีย์ไม่ซ้ำกัน
- Cคู่ของคีย์ที่เท่ากัน
- Dค่าตามลำดับการแทรกเท่านั้น
4.ปานกลาง
ต้นทุนของการแทรกสมาชิกตรงกลางอาร์เรย์ที่มี n สมาชิกคือเท่าใด
- AO(n) เพราะสมาชิกหลังจากนั้นต้องเลื่อน
- BO(log n) เพราะการค้นหาแบบทวิภาค
- CO(1) เพราะทราบดัชนี
- DO(n²) เพราะแต่ละสมาชิกย้าย n ครั้ง
5.ปานกลาง
ต้นไม้ทวิภาคมีราก 1 ลูกซ้าย 2 ลูกขวา 3 โหนด 2 มีลูก 4 (ซ้าย) และ 5 (ขวา) การท่องแบบ postorder คืออะไร
- A1 2 4 5 3
- B4 2 5 1 3
- C4 5 2 3 1
- D5 4 3 2 1
6.ปานกลาง
รายการประชิดใช้หน่วยความจำเท่าใดสำหรับกราฟที่มี V จุดยอดและ E เส้นเชื่อม
- AO(V + E)
- BO(E²)
- CO(V²)
- DO(V × E)
7.ยาก
ภายใต้การแฮชสม่ำเสมออย่างง่าย เวลาคาดหมายของการค้นหาในตารางแฮชแบบ chaining ที่มี n คีย์และ m ถังคือเท่าใด
- AO(n)
- BO(log n)
- CO(m)
- DO(1 + α) เมื่อ α = n / m
8.ยาก
radix tree (compressed trie) ปรับปรุง trie ธรรมดาอย่างไร
- Aเก็บเฉพาะตัวอักษรแรกของแต่ละคำ
- Bเรียงลูกของแต่ละโหนดตามความถี่
- Cรวมโซ่ของโหนดที่มีลูกตัวเดียวเป็นเส้นเชื่อมเดียวที่ติดป้ายด้วยสตริง
- Dเก็บแต่ละคำไว้ในตารางแฮชที่ราก แทนที่จะเก็บในโหนดแยกกัน
เฉลย
- 1. A · ทุกโหนดมีลูกไม่เกินสองตัว
- 2. B · คิว
- 3. B · คู่คีย์–ค่าที่คีย์ไม่ซ้ำกัน
- 4. A · O(n) เพราะสมาชิกหลังจากนั้นต้องเลื่อน
- 5. C · 4 5 2 3 1
- 6. A · O(V + E)
- 7. D · O(1 + α) เมื่อ α = n / m
- 8. C · รวมโซ่ของโหนดที่มีลูกตัวเดียวเป็นเส้นเชื่อมเดียวที่ติดป้ายด้วยสตริง
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com