ใบงาน โครงสร้างข้อมูล พร้อมเฉลย

ใบงาน โครงสร้างข้อมูล ฟรีสำหรับพิมพ์: 8 ข้อ ตั้งแต่ระดับง่ายถึงระดับข้อสอบจริง พร้อมเฉลย พิมพ์หรือบันทึกเป็น PDF ได้

ใบงานใหม่ฝึกออนไลน์พร้อมคำใบ้

สำหรับผู้สอน: พิมพ์ ทำสำเนา และใช้ในชั้นเรียนได้ฟรี ใบงานใหม่แต่ละชุดมีค่าตัวเลขใหม่และเฉลยของตัวเอง หากใส่ลิงก์ไปยัง ExamProblems ในหน้ารายวิชาของคุณ เราจะขอบคุณมาก

ชื่อ: ____________________   วันที่: ____________

1.ง่าย

โครงสร้างข้อมูลใดทำงานตามหลักการ "เข้าหลังออกก่อน" (last in, first out)

  1. Aลิงก์ลิสต์ (linked list)
  2. Bสแตก (stack)
  3. Cตารางแฮช (hash table)
  4. Dคิว (queue)
2.ง่าย

การดำเนินการ peek (หรือ top) บนสแตกทำอะไร

  1. Aเอาสมาชิกทั้งหมดออกจากสแตก
  2. Bเอาสมาชิกบนสุดออกและคืนค่า
  3. Cคืนสมาชิกบนสุดโดยไม่เอาออก
  4. Dคืนสมาชิกล่างสุดของสแตก
3.ง่าย

ในต้นไม้ โหนดพี่น้อง (sibling) คืออะไร

  1. Aโหนดที่ไม่มีลูก
  2. Bโหนดที่ระดับความลึกเดียวกันในต้นไม้ย่อยต่างกัน
  3. Cโหนดที่มีแม่เดียวกัน
  4. Dโหนดและแม่ของมัน
4.ปานกลาง

สมาชิกใหม่ถูกแทรกลงในฮีปทวิภาคอย่างไร

  1. Aวางที่รากและเลื่อนลง
  2. Bวางที่ท้ายอาร์เรย์และเลื่อนขึ้น (sift up) ตราบที่ยังละเมิดคุณสมบัติฮีป
  3. Cสร้างฮีปใหม่ทั้งหมดตั้งแต่ต้น
  4. Dแทรกที่ตำแหน่งตามลำดับโดยเลื่อนสมาชิกที่ใหญ่กว่าทั้งหมดไปทางขวาหนึ่งตำแหน่ง
5.ปานกลาง

โหนดใน binary search tree มีต้นไม้ย่อยขวา in-order successor ของมันอยู่ที่ใด

  1. Aลูกขวาของมันเสมอ
  2. Bโหนดซ้ายสุดของต้นไม้ย่อยขวา
  3. Cแม่ของมันเสมอ
  4. Dโหนดขวาสุดของต้นไม้ย่อยซ้าย
6.ปานกลาง

extract-min ใน min-heap ทวิภาคทำงานอย่างไร

  1. Aลบรากและเลื่อนสมาชิกทั้งหมดไปทางซ้ายหนึ่งตำแหน่ง
  2. Bลบสมาชิกสุดท้ายของอาร์เรย์
  3. Cย้ายสมาชิกสุดท้ายไปที่รากและเลื่อนลง (sift down)
  4. Dค้นหาใบทั้งหมดเพื่อหาค่าต่ำสุดใหม่
7.ยาก

การลบโหนดที่มีลูกสองตัวจาก binary search tree มักทำโดย

  1. Aแทนที่ด้วย in-order successor (หรือ predecessor) แล้วลบโหนดนั้น
  2. Bลบต้นไม้ย่อยทั้งหมด
  3. Cสร้างต้นไม้ย่อยที่อยู่ใต้โหนดนั้นขึ้นใหม่ทั้งหมดแล้วแทรกคีย์ทุกตัวที่เคยมีอยู่ลงไปใหม่
  4. Dสลับกับราก
8.ยาก

ตรวจว่าลิงก์ลิสต์เชิงเดี่ยวมีวงจรหรือไม่โดยใช้หน่วยความจำเพิ่ม O(1) ได้อย่างไร

  1. Aเลื่อนตัวชี้หนึ่งทีละหนึ่งก้าวและอีกตัวสองก้าว แล้วตรวจว่าพบกันหรือไม่
  2. Bนับโหนดจนเกินกว่าฟิลด์ความยาวของลิสต์
  3. Cเรียงลิสต์และหาตัวซ้ำ
  4. Dเก็บทุกโหนดที่เยี่ยมในเซตแฮช

เฉลย

  1. 1. B · สแตก (stack)
  2. 2. C · คืนสมาชิกบนสุดโดยไม่เอาออก
  3. 3. C · โหนดที่มีแม่เดียวกัน
  4. 4. B · วางที่ท้ายอาร์เรย์และเลื่อนขึ้น (sift up) ตราบที่ยังละเมิดคุณสมบัติฮีป
  5. 5. B · โหนดซ้ายสุดของต้นไม้ย่อยขวา
  6. 6. C · ย้ายสมาชิกสุดท้ายไปที่รากและเลื่อนลง (sift down)
  7. 7. A · แทนที่ด้วย in-order successor (หรือ predecessor) แล้วลบโหนดนั้น
  8. 8. A · เลื่อนตัวชี้หนึ่งทีละหนึ่งก้าวและอีกตัวสองก้าว แล้วตรวจว่าพบกันหรือไม่

เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com