โครงสร้างข้อมูลและอัลกอริทึม: ชุดสรุปเร่งรัด

สรุปสูตร ขั้นตอนวิธีทำที่สำคัญของทุกหัวข้อ และโจทย์ฝึก 6 ข้อ พร้อมเฉลยละเอียดไว้ท้ายเล่ม

โจทย์ใหม่กลับไปที่รายวิชา

ในหน้าต่างพิมพ์ ให้เลือก “บันทึกเป็น PDF” เพื่อเก็บสำเนาไว้ในอุปกรณ์ของคุณ

1สูตรและวิธีทำ

ทฤษฎีกราฟ

เล็มมาการจับมือ
Σ deg(v) = 2|E|
กราฟบริบูรณ์
|E(Kn)| = n(n − 1)/2, |E(Km,n)| = m·n
กราฟปรกติ
|E| = n·k/2
ต้นไม้และป่า
|E| = n − 1, |E| = n − c
ใบของต้นไม้
L = 2 + Σ (deg(v) − 2) over deg(v) ≥ 3
ออยเลอร์
วงจร: ดีกรีเป็นคู่ทุกจุดยอด; ทางเดิน: มีดีกรีคี่พอดี 2 จุดยอด
วงจรแฮมิลตันใน Kn
(n − 1)!/2
การปรับค่าของไดก์สตรา
d(v) = min(d(v), d(u) + w(u, v))
วอล์กความยาว L
(Mᴸ)ij

วิธีการ

  1. เขียนดีกรีของทุกจุดยอด ผลบวกของดีกรีเท่ากับสองเท่าของจำนวนเส้นเชื่อม
  2. สำหรับโจทย์ออยเลอร์ ให้ตรวจว่ากราฟเชื่อมโยงกัน และนับจุดยอดที่มีดีกรีคี่
  3. สำหรับต้นไม้ ให้ใช้ว่ามี n − 1 เส้นเชื่อม และเล็มมาการจับมือ
  4. สำหรับไดก์สตรา ให้เก็บตารางระยะทางชั่วคราว และยืนยันจุดยอดที่ยังไม่ยืนยันซึ่งมีค่าน้อยที่สุดในแต่ละรอบ
  5. สำหรับต้นไม้ทอดข้ามค่าน้อยที่สุด ให้เรียงเส้นเชื่อมตามน้ำหนักและข้ามทุกเส้นที่ทำให้เกิดวัฏจักร (ครัสคัล) หรือขยายต้นไม้ต้นเดียวจากจุดยอดเริ่มต้น (พริม)

2โจทย์ฝึก

1.อัลกอริทึมและความซับซ้อนปานกลาง

เหตุใดจึงมักละฐานของลอการิทึมใน Big O เช่น O(log n)

  1. Aลอการิทึมทั้งหมดในวิทยาการคอมพิวเตอร์มีฐาน 10 จึงไม่ต้องระบุ
  2. Bลอการิทึมที่ฐานต่างกันต่างกันเพียงตัวคูณคงที่
  3. Cฐานมีความสำคัญเฉพาะเมื่อ n น้อย
  4. Dลอการิทึมถูกปัดเป็นจำนวนเต็มเสมอ
2.อัลกอริทึมและความซับซ้อนยาก

การเลือกปลายทั้งสองของทุกเส้นเชื่อมใน maximal matching ให้ผลเป็นเซตครอบคลุมจุดยอด (vertex cover) เซตครอบคลุมนี้ดีเพียงใด

  1. Aเป็นเซตครอบคลุมจุดยอดที่เล็กที่สุดเสมอ
  2. Bไม่เกิน log n เท่าของค่าต่ำสุด
  3. Cไม่ทราบคุณภาพเมื่อเทียบกับค่าที่เหมาะสมที่สุด
  4. Dขนาดไม่เกินสองเท่าของเซตครอบคลุมจุดยอดที่เล็กที่สุด
3.โครงสร้างข้อมูลปานกลาง

หาคีย์ที่น้อยที่สุดใน binary search tree ได้อย่างไร

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

โหนด AVL ไม่สมดุลเพราะต้นไม้ย่อยขวาของลูกซ้ายสูงเกินไป (กรณีซ้าย–ขวา) ใช้วิธีแก้ใด

  1. Aหมุนซ้ายที่ลูกซ้าย แล้วหมุนขวาที่โหนด
  2. Bหมุนขวาที่ลูกซ้าย แล้วหมุนซ้ายที่โหนด
  3. Cหมุนซ้ายหนึ่งครั้งที่โหนด
  4. Dหมุนขวาหนึ่งครั้งที่โหนด
5.ทฤษฎีกราฟปานกลาง
ABCDEFGวงจรออยเลอร์ทางเดินออยเลอร์ ไม่มีวงจรไม่ใช่ทั้งสองอย่าง

กราฟเชื่อมโยงนี้มีวงจรออยเลอร์ ทางเดินออยเลอร์ที่ไม่ใช่วงจร หรือไม่มีทั้งสองอย่าง ให้คลิกคำตอบของคุณ

|V| = 7|E| = 9
  1. 1วงจรออยเลอร์
  2. 2ทางเดินออยเลอร์ ไม่มีวงจร
  3. 3ไม่ใช่ทั้งสองอย่าง
6.ทฤษฎีกราฟยาก
111414414415ABCDEF

ใช้ขั้นตอนวิธีของไดก์สตราเพื่อหาความยาว d(F) ของเส้นทางที่สั้นที่สุดจาก A ไป F ในกราฟถ่วงน้ำหนัก

เริ่มต้น: Aสิ้นสุด: F
d(F) =

3สารละลาย

1.อัลกอริทึมและความซับซ้อน

คำตอบ: B · ลอการิทึมที่ฐานต่างกันต่างกันเพียงตัวคูณคงที่

เหตุผลที่เป็นคำตอบนี้

การเปลี่ยนฐานคูณลอการิทึมด้วยค่าคงที่ และ Big O ไม่สนใจตัวคูณคงที่

คำตอบ

B · ลอการิทึมที่ฐานต่างกันต่างกันเพียงตัวคูณคงที่
2.อัลกอริทึมและความซับซ้อน

คำตอบ: D · ขนาดไม่เกินสองเท่าของเซตครอบคลุมจุดยอดที่เล็กที่สุด

เหตุผลที่เป็นคำตอบนี้

เส้นเชื่อมใน matching ไม่ใช้จุดยอดร่วมกัน ค่าเหมาะสมที่สุดจึงต้องมีอย่างน้อยหนึ่งจุดยอดต่อหนึ่งเส้น ขณะที่วิธีนี้เลือกสองจุด: การประมาณค่า 2 เท่า

คำตอบ

D · ขนาดไม่เกินสองเท่าของเซตครอบคลุมจุดยอดที่เล็กที่สุด
3.โครงสร้างข้อมูล

คำตอบ: A · ตามลูกซ้ายจากรากจนไม่มีลูกซ้าย

เหตุผลที่เป็นคำตอบนี้

โหนดซ้ายสุดไม่มีคีย์ที่เล็กกว่าในต้นไม้ จึงเป็นค่าต่ำสุด ต้นทุนแปรผันตามความสูง

คำตอบ

A · ตามลูกซ้ายจากรากจนไม่มีลูกซ้าย
4.โครงสร้างข้อมูล

คำตอบ: A · หมุนซ้ายที่ลูกซ้าย แล้วหมุนขวาที่โหนด

เหตุผลที่เป็นคำตอบนี้

การหมุนครั้งแรกเปลี่ยนกรณีซ้าย–ขวาเป็นซ้าย–ซ้าย ซึ่งการหมุนขวาที่โหนดไม่สมดุลแก้ได้

คำตอบ

A · หมุนซ้ายที่ลูกซ้าย แล้วหมุนขวาที่โหนด
5.ทฤษฎีกราฟ

คำตอบ: ไม่ใช่ทั้งสองอย่าง

ออยเลอร์ แฮมิลตัน และต้นไม้: กราฟเชื่อมโยงมีวงจรออยเลอร์ (ผ่านทุกเส้นเชื่อมครั้งเดียวและกลับจุดเริ่มต้น) เมื่อทุกจุดยอดมีดีกรีคู่ และมีทางเดินออยเลอร์ที่ไม่ใช่วงจรเมื่อมีจุดยอดดีกรีคี่พอดีสองจุด ทางเดินนั้นไปจากจุดยอดคี่จุดหนึ่งถึงอีกจุดหนึ่ง วงจรแฮมิลตันผ่านทุกจุดยอดครั้งเดียว Kn มีวงจรแบบนี้ (n − 1)!/2 วงจร ต้นไม้ที่มี n จุดยอดมี n − 1 เส้นเชื่อม และกราฟเชื่อมโยงที่มี m เส้นเชื่อมจะเหลือต้นไม้ทอดข้ามหลังเอาเส้นเชื่อมออก m − n + 1 เส้น

ดีกรี

deg(A) = 1, deg(B) = 4, deg(C) = 2, deg(D) = 3, deg(E) = 3, deg(F) = 2, deg(G) = 3

จุดยอดคี่

A, D, E, G → 4
ไม่ใช่ทั้งสองอย่าง

คำตอบ

ไม่ใช่ทั้งสองอย่าง
6.ทฤษฎีกราฟ

คำตอบ: d(F) = 19

เส้นทางที่สั้นที่สุดและต้นไม้ทอดข้าม: ขั้นตอนวิธีของไดก์สตรายืนยันหนึ่งจุดยอดต่อรอบ: จุดยอดที่ยังไม่ยืนยันซึ่งมีระยะทางชั่วคราวน้อยที่สุด ระยะทางของมันเป็นค่าสุดท้ายแล้ว และเพื่อนบ้าน v ทุกจุดได้ d(v) = min(d(v), d(u) + w(u, v)) ขั้นตอนวิธีของครัสคัลสร้างต้นไม้ทอดข้ามค่าน้อยที่สุดโดยเลือกเส้นเชื่อมจากเบาไปหนักและข้ามเส้นที่ทำให้เกิดวัฏจักร ขั้นตอนวิธีของพริมขยายต้นไม้หนึ่งต้นจากจุดยอดเริ่มต้นโดยเพิ่มเส้นเชื่อมที่เบาที่สุดที่ออกจากต้นไม้เสมอ ต้นไม้ทอดข้ามที่มี n จุดยอดมี n − 1 เส้นเชื่อม

ไดก์สตราทีละรอบ

แต่ละบรรทัด: จุดยอดที่ยืนยัน ระยะทางสุดท้ายของมัน และเพื่อนบ้านที่ระยะทางดีขึ้น

A (0): C: 1
C (1): B: 12, E: 15
B (12): D: 16
E (15): F: 19
D (16)
F (19)

เส้นทางที่สั้นที่สุด

A → C → E → F
d(F) = 19

คำตอบ

d(F) = 19

ExamProblems · examproblems.com/courses/data-structures-and-algorithms