ใบงาน โครงสร้างข้อมูล พร้อมเฉลย
ใบงาน โครงสร้างข้อมูล ฟรีสำหรับพิมพ์: 8 ข้อ ตั้งแต่ระดับง่ายถึงระดับข้อสอบจริง พร้อมเฉลย พิมพ์หรือบันทึกเป็น PDF ได้
สำหรับผู้สอน: พิมพ์ ทำสำเนา และใช้ในชั้นเรียนได้ฟรี ใบงานใหม่แต่ละชุดมีค่าตัวเลขใหม่และเฉลยของตัวเอง หากใส่ลิงก์ไปยัง ExamProblems ในหน้ารายวิชาของคุณ เราจะขอบคุณมาก
ชื่อ: ____________________ วันที่: ____________
1.ง่าย
ข้อแตกต่างหลักระหว่างอาร์เรย์สถิตกับอาร์เรย์พลวัตคืออะไร
- Aอาร์เรย์สถิตเข้าถึงด้วยดัชนีช้ากว่า
- Bอาร์เรย์สถิตเก็บได้เฉพาะตัวเลข
- Cอาร์เรย์พลวัตเก็บสมาชิกในโหนดที่เชื่อมกันจึงขยายได้ทีละหนึ่ง
- Dอาร์เรย์พลวัตขยายได้โดยย้ายไปยังบล็อกหน่วยความจำที่ใหญ่กว่า
2.ง่าย
ความสูงของต้นไม้มักถูกนิยามว่า
- Aจำนวนลูกของราก
- Bจำนวนเส้นเชื่อมบนเส้นทางที่ยาวที่สุดจากรากไปยังใบ
- Cจำนวนโหนดทั้งหมดในต้นไม้ นับทั้งรากและใบทุกใบ
- Dจำนวนใบในต้นไม้
3.ง่าย
ในตารางแฮช การชนกัน (collision) คืออะไร
- Aตารางหน่วยความจำหมด
- Bคีย์ไม่สามารถแฮชได้เลย
- Cคีย์ที่เท่ากันสองตัวถูกเก็บสองครั้ง
- Dคีย์สองตัวที่ต่างกันแปลงเป็นดัชนีเดียวกัน
4.ปานกลาง
อัลกอริทึมของ Dijkstra ใช้ชนิดข้อมูลนามธรรมใดเลือกจุดยอดถัดไปที่จะประมวลผล
- Aสแตก
- Bคิว FIFO
- Cคิวลำดับความสำคัญแบบค่าต่ำสุด (min-priority queue)
- Dเซตที่ไม่มีลำดับ
5.ปานกลาง
โครงสร้างข้อมูลใดที่การค้นหาในแนวลึก (DFS) แบบวนซ้ำใช้
- Aตารางแฮชเท่านั้น
- Bสแตก
- Cฮีป
- Dคิว
6.ปานกลาง
โครงสร้างข้อมูลใดใช้ตรวจว่าวงเล็บใน "{[()]}" สมดุลหรือไม่
- Aคิว
- Bสแตก
- Cตารางแฮช
- Dbinary search tree
7.ยาก
เหตุใดเซิร์ฟเวอร์จึงเลือกฟังก์ชันแฮชแบบสุ่มจากตระกูลสากล (universal family)
- Aเพื่อทำให้ตารางแฮชเรียงลำดับ
- Bเพื่อตัดความจำเป็นในการปรับขนาดตาราง
- Cเพื่อทำให้ผู้โจมตีเลือกคีย์จำนวนมากที่ชนกันทั้งหมดได้ยากมาก
- Dเพื่อรับประกันว่าไม่มีคีย์สองตัวชนกันเลย ไม่ว่าผู้โจมตีจะส่งคีย์ใดมา
8.ยาก
ข้อใดเกี่ยวกับ heapsort ถูกต้อง
- Aเรียงในที่เดิมใน O(n log n) กรณีเลวร้ายที่สุด แต่ไม่เสถียร
- Bต้องใช้ binary search tree เป็นที่เก็บเพิ่มเติม จึงใช้หน่วยความจำเพิ่ม O(n)
- Cเสถียรและต้องใช้หน่วยความจำเพิ่ม O(n)
- Dทำงานใน O(n) กับอินพุตใด ๆ
เฉลย
- 1. D · อาร์เรย์พลวัตขยายได้โดยย้ายไปยังบล็อกหน่วยความจำที่ใหญ่กว่า
- 2. B · จำนวนเส้นเชื่อมบนเส้นทางที่ยาวที่สุดจากรากไปยังใบ
- 3. D · คีย์สองตัวที่ต่างกันแปลงเป็นดัชนีเดียวกัน
- 4. C · คิวลำดับความสำคัญแบบค่าต่ำสุด (min-priority queue)
- 5. B · สแตก
- 6. B · สแตก
- 7. C · เพื่อทำให้ผู้โจมตีเลือกคีย์จำนวนมากที่ชนกันทั้งหมดได้ยากมาก
- 8. A · เรียงในที่เดิมใน O(n log n) กรณีเลวร้ายที่สุด แต่ไม่เสถียร
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com