งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

กราฟ (Graph) DATA STRUCTURE IN C กราฟ เป็นโครงสร้างข้อมูลแบบไม่เชิงเส้นชนิดหนึ่ง ซึ่งมี ลักษณะเป็นโครงสร้างข่ายงาน แบบไม่ตายตัว ที่สามารถแทรก ข้อมูลเข้าและข้อมูลออกได้

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "กราฟ (Graph) DATA STRUCTURE IN C กราฟ เป็นโครงสร้างข้อมูลแบบไม่เชิงเส้นชนิดหนึ่ง ซึ่งมี ลักษณะเป็นโครงสร้างข่ายงาน แบบไม่ตายตัว ที่สามารถแทรก ข้อมูลเข้าและข้อมูลออกได้"— ใบสำเนางานนำเสนอ:

1

2 กราฟ (Graph) DATA STRUCTURE IN C

3 กราฟ เป็นโครงสร้างข้อมูลแบบไม่เชิงเส้นชนิดหนึ่ง ซึ่งมี ลักษณะเป็นโครงสร้างข่ายงาน แบบไม่ตายตัว ที่สามารถแทรก ข้อมูลเข้าและข้อมูลออกได้ ab (a) b bb bb (b)

4 กราฟแบ่งออกเป็น 2 ชนิด 1. กราฟไม่ระบุทิศทาง 2. กราฟระบุทิศทาง a 1. กราฟไม่ระบุทิศทาง ประกอบด้วยบัพและเส้นเชื่อมที่ไม่ระบุทิศทาง ของความสัมพันธ์ ไปทางใดทางหนึ่ง กราฟไม่ระบุทิศทางมีหลายประเภท คือ กราฟเชื่อมต่อ กราฟไม่เชื่อมต่อ กราฟไม่มีวง กราฟรูปต้นไม้ กราฟไม่ระบุทิศทางมีหลายประเภท คือ กราฟเชื่อมต่อ กราฟไม่เชื่อมต่อ กราฟไม่มีวง กราฟรูปต้นไม้ dc b (การเชื่อมต่อ) a dc b (การไม่เชื่อมต่อ) e

5 2. กราฟระบุทิศทาง มีลักษณะเหมือนกับกราฟไม่ระบุ ทิศทาง แต่ต่างกันที่เส้นเชื่อมระหว่างบัพ กราฟระบุทิศทางเส้นเชื่อม จะระบุความสัมพันธ์อย่างชัดเจน โดยบัพเริ่มต้นความสัมพันธ์จะ เป็นบัพต้นทางและบัพสิ้นสุดความสัมพันธ์จะเป็นบัพปลายทาง a b บัพต้นทาง บัพปลายทาง (a) a b c (b) a e cbd (c)

6 จำนวนเส้นเชื่อมระหว่างบัพที่ประกอบเข้าด้วยกันเป็นแนวเดิน เรียกว่า ความยาวของแนวเดิน ถ้าบัพในแนวเดินไม่ซ้ำกันจะเรียกแนวเดิน นั้นว่า วิถี ถ้าบัพเริ่มต้นและบัพสุดท้ายของวิถีใดเป็นบัพเดียวกัน จะเรียกวิถี นั้นว่า วิถีวง และเรียกกราฟที่มีวงว่า กราฟมีวง a fe d bc

7 ลำดับที่วิถีความยาวของวิถี 1 a e 1 2 a d e 2 3 a b c e 3 4 a b c d e 4 แสดงวิถีจากบัพ a ไปยัง e ได้ ดังนี้

8 กราฟไม่ระบุทิศทางและกราฟระบุทิศทางที่กำหนดตัวเลขเพื่อแสดงน้ำหนัก หรือระยะทางให้กับเส้นเชื่อมแต่ละเส้น เรียกว่า เวทกราฟ ซึ่งจะมีลักษณะดังนี้ (a) (b)

9 การแทนที่กราฟในหน่วยความจำ 1. การแทนที่กราฟด้วยเมทริกซ์ประชิด การแทนด้วยเมทริกซ์ประชิด(adjacency matrix) โดยนำเอาชื่อบัพ ทั้งหมดในกราฟมากำหนดเป็นชื่อแถวและชื่อสดมภ์ในเมทริกซ์แล้วกำหนดค่าลง ในเมทริกซ์ ถ้า G เป็นกราฟที่มีบัพ n บัพ ก็จะได้เมทริกซ์ที่มีขนาด n*n การ กำหนดค่าลงในเมทริกซ์มีวิธีการ ดังนี้ ถ้าบัพในแถวใดมีเส้นเชื่อมไปยังบัพในสดมภ์ใด ตรงตำแหน่งนั้นให้มี ค่าเป็น 1 ถ้าบัพในแถวใดมีเส้นเชื่อมไปยังบัพในสดมภ์ใด ตรงตำแหน่งนั้นให้มี ค่าเป็น 1 ถ้าบัพในแถวใดไม่มีเส้นเชื่อมไปยังบัพในสดมภ์ใด ตำแหน่งนั้นก็ให้มี ค่าเป็น 0 ถ้าบัพในแถวใดไม่มีเส้นเชื่อมไปยังบัพในสดมภ์ใด ตำแหน่งนั้นก็ให้มี ค่าเป็น 0

10 การแทนกราฟไม่ระบุทิศทางด้วยเมทริกซ์ประชิด ac b d (a) (b) abcd a b c d

11 การแทนกราฟระบุทิศทางด้วยเมทริกซ์ประชิด a cd b e (a) (b) abcd a b c d e e

12 2. การแทนที่กราฟด้วยรายการโยง การแทนที่กราฟด้วยเมทริกซ์ต้องใช้เนื้อที่ในหน่วยความจำมากหากกราฟ นั้นมีจำนวนบัพมาก แต่ถ้าใช้การแทนที่ด้วยรายการโยง จะช่วยให้การใช้เนื้อที่ใน หน่วยความจำลดลง การแทนที่กราฟด้วยรายการโยง แบ่งได้เป็น 4 ประเภท คือ 2.1 การแทนกราฟด้วยรายการประชิด เป็นการแทนที่ที่เหมาะกับกราฟที่ มีจำนวนเส้นเชื่อมน้อย ซึ่งถ้าแทนด้วยเมทริกซ์ประชิดจะมีค่าที่เป็นศูนย์มาก การ แทนกราฟด้วยรายการประชิดเป็นการแทนโดยนำเอาบัพทุกบัพในกราฟมาเป็นบัพ ส่วนหัวรายของรายการ ส่วนบัพอื่นๆในแต่ละแถว ถือว่าเป็นบัพข้างเคียงของบัพ ส่วนหัว

13 ab dc (a) a b c d b a b b cd d c (b) การแทนกราฟไม่ระบุทิศทางด้วยรายการประชิด

14 a de c b (a) a b c d c c e b d d e dc (b) การแทนกราฟระบุทิศทางด้วยรายการประชิด

15 2.2 การแทนกราฟด้วยรายการเชิงตั้งฉาก การแทนวิธีนี้นิยมใช้ในกรณีที่ กราฟมีจำนวนบัพมากแต่มีเส้นเชื่อมน้อย วิธีนี้จะช่วยให้ประหยัดเนื้อที่ใน หน่วยความจำได้มาก 2.2 การแทนกราฟด้วยรายการเชิงตั้งฉาก การแทนวิธีนี้นิยมใช้ในกรณีที่ กราฟมีจำนวนบัพมากแต่มีเส้นเชื่อมน้อย วิธีนี้จะช่วยให้ประหยัดเนื้อที่ใน หน่วยความจำได้มาก a edc b การแทนกราฟด้วยรายการเชิงตั้งฉาก

16 สำหรับโครงสร้างในการแทนกราฟด้วยรายการเชิงตั้งฉาก แต่ละบัพจะ ประกอบด้วยเขตข้อมูลดังนี้ สำหรับโครงสร้างในการแทนกราฟด้วยรายการเชิงตั้งฉาก แต่ละบัพจะ ประกอบด้วยเขตข้อมูลดังนี้ โดยที่ … tp เป็น ตัวชี้ส่วนท้ายของลูกศรที่เป็นเส้นเชื่อม (tail pointer) hp เป็น ตัวชี้ส่วนหัวของลูกศรที่เป็นเส้นเชื่อม (head pointer) cph เป็น ตัวชี้สดมภ์ซึ่งเป็นส่วนหัวของลูกศร (column pointer for head) เขียนแทนด้วย rpt เป็น ตัวชี้แถวซึ่งเป็นส่วนท้ายของลูกศร (row pointer for tail) เขียนแทนด้วย rpt เป็น ตัวชี้แถวซึ่งเป็นส่วนท้ายของลูกศร (row pointer for tail) เขียนแทนด้วย

17 ขั้นที่ 1 นำบัพที่ประกอบด้วยโครงสร้างของรายการเชิงตั้งฉากทุกบัพในกราฟ มาเป็นบัพส่วนหัวในแนวแถวและแนวสดมภ์

18 ขั้นที่ 2 เชื่อมโยงตัวชี้แถวและตัวชี้สดมภ์ของบัพ a

19 ขั้นที่ 3 เชื่อมโยงตัวชี้แถวและตัวชี้สดมภ์ของบัพ b

20 ขั้นที่ 4 เชื่อมโยงตัวชี้แถวและตัวชี้สดมภ์ของบัพ c

21 ขั้นที่ 5 เชื่อมโยงตัวชี้แถวและตัวชี้สดมภ์ของบัพ d

22 ขั้นที่ 6 เชื่อมโยงตัวชี้แถวและตัวชี้สดมภ์ของบัพ e

23 2.3 การแทนกราฟด้วยหลายรายการประชิด จะแทนเส้นเชื่อมด้วยโครงสร้าง ของหลายรายการประชิด เพราะยึดหลักที่ว่าเส้นเชื่อมแต่ละเส้นจะต้องมีบัพที่อยู่ที่ ส่วนหัวและบัพที่ส่วนท้ายของเส้นเชื่อมนั้นๆ ดังนั้น บัพแต่ละบัพจึงอาจมองได้ใน 2 ทิศทาง a de b การแทนกราฟด้วย หลายรายการประชิด

24 สำหรับโครงสร้างในการแทนกราฟด้วยหลายรายการประชิด ประกอบด้วยเขตข้อมูลดังนี้ สำหรับโครงสร้างในการแทนกราฟด้วยหลายรายการประชิด ประกอบด้วยเขตข้อมูลดังนี้ โดยที่ … mb เป็น บิตเครื่องหมาย (mark bit) ที่แสดงการถูกเยี่ยมและไม่ถูก เยี่ยมของเส้นเชื่อม etn เป็น บัพที่ส่วนท้ายของเส้นเชื่อม (edge tail node) ehn เป็น บัพที่ส่วนหัวของเส้นเชื่อม (edge head node) etnp เป็น ตัวชี้บัพส่วนท้ายของเส้นเชื่อม (edge tail node pointer) ehnp เป็น ตัวชี้บัพส่วนหัวของเส้นเชื่อม (edge head node pointer)

25 ขั้นที่ 1 นำเส้นเชื่อมที่ประกอบด้วยโครงสร้างของรายการหลายประชิดทุก เส้นมาเก็บเรียงต่อกันโดยมีหมายเลขลำดับกำกับ (a,b) (a,d) (b,d) (c,a) (d,c)

26 ขั้นที่ 2 เติมค่าลงในช่องตัวชี้สำหรับบัพที่ส่วนท้ายและบัพที่ส่วนหัวของเส้น เชื่อม โดยพิจารณาว่าลำดับของบัพที่ส่วนท้ายและบัพที่ส่วนหัวของเส้นเชื่อม ที่กำลังพิจารณาอยู่ (a,b) (a,d) (b,d) (c,a) (d,c) NULL4 4

27 จงเติมค่าลงในช่อง etnp และ ehnp

28 2.4 การแทนกราฟด้วยสารบบัพ การแทนกราฟด้วยวิธีนี้เหมาะกับกราฟ ประเภทเวทกราฟที่มีจำนวนเส้นเชื่อมมาก ดังนั้นการแทนจึงใช้สารบบมาช่วยใน การแสดงชื่อบัพเพื่อเชื่อมโยงไปยังตารางของเส้นเชื่อมแต่ละเส้น 2.4 การแทนกราฟด้วยสารบบัพ การแทนกราฟด้วยวิธีนี้เหมาะกับกราฟ ประเภทเวทกราฟที่มีจำนวนเส้นเชื่อมมาก ดังนั้นการแทนจึงใช้สารบบมาช่วยใน การแสดงชื่อบัพเพื่อเชื่อมโยงไปยังตารางของเส้นเชื่อมแต่ละเส้น a bd c การแทนกราฟด้วยสารบบบัพและตารางของเส้นเชื่อมแต่ละเส้นได้ ดังนี้ 12

29 บัพต้น ทาง จำนวนเส้น เชื่อม ตัวชี้ไปยังตารางเส้นเชื่อม a2 b2 c1 d1บัพปลายทางน้ำหนักb10 b12 บัพปลายทางน้ำหนัก c15 d8 บัพปลายทางน้ำหนัก d7 บัพปลายทางน้ำหนัก a27 การแทนกราฟด้วยสารบบบัพ

30 การแวะผ่านไปในกราฟ เป็นการเยี่ยมบัพในกราฟทุกบัพๆ ละหนึ่งครั้ง ซึ่งการแวะผ่านจะมีวิธีการ เยี่ยมบัพต่างๆหลายวิธีด้วยกัน แต่วิธีที่มีความสำคัญและได้รับความนิยมมากที่สุด คือ การแวะผ่านในแนวกว้าง (breadth-first traversal) การแวะผ่านในแนวลึก (depth-first traversal) และ การแวะผ่านตามลำดับความสำคัญ (priority-first traversal)

31 1. การแวะผ่านในแนวกว้าง เป็นการเยี่ยมบัพไปทีละระดับจากซ้ายไปขวา โดยเริ่มจากบัพรากบัพลูกทาง ด้านซ้ายสุด บัพลูกระดับถัดไปเรื่อยๆของระดับแรก เมื่อหมดระดับแรก ก็เริ่มไปเยี่ยม บัพลูกทางด้านซ้ายสุดของระดับถัดไปเรื่อยๆจนครบทุกระดับ ถ้ากราฟระบุทิศทางประกอบด้วยบัพและเส้นเชื่อม ดังรูป จะสามารถแสดงการแวะผ่านในแนวกว้างได้ ดังนี้

32 ขั้นที่ 1 เยี่ยมบัพเริ่มต้น คือ บัพ เริ่มต้น 1 1

33 ขั้นที่ 2 เยี่ยมบัพลูกของบัพ 1 จากซ้ายไปขวา คือ บัพ 2 และบัพ เริ่มต้น

34 ขั้นที่ 3 เยี่ยมบัพลูกของบัพ 2 จากซ้ายไปขวา คือ บัพ 4 และบัพ เริ่มต้น

35 ขั้นที่ 4 เยี่ยมบัพลูกของบัพ 3 จากซ้ายไปขวา คือ บัพ 6 และบัพ เริ่มต้น

36 ขั้นที่ 5 เยี่ยมบัพลูกของบัพ 4 ซึ่งบัพลูกของบัพเดียว คือ บัพ 7 เมื่อเยี่ยมครบทุกบัพแล้ว จะได้ผลของการแวะผ่านในแนวกว้าง คือ เริ่มต้น

37 2. การแวะผ่านในแนวลึก เป็นการเยี่ยมบัพลงไปในระดับลึกก่อน โดยเริ่มจากบัพราก บัพลูกทางซ้าย สุดไปเรื่อยๆจนถึงระดับสูงสุด แล้วถอยกลับมาเยี่ยมทีละระดับ กราฟระบุทิศทางประกอบด้วยบัพและเส้นเชื่อม ดังรูป จะสามารถแสดงการแวะผ่านในแนวลึกได้ ดังนี้ เริ่มต้น 1 1

38 ขั้นที่ 1 เยี่ยมบัพเริ่มต้น คือ บัพ เริ่มต้น 1 1

39 ขั้นที่ 2 เยี่ยมบัพลูกทางซ้ายบัพ 1 คือ บัพ เริ่มต้น

40 ขั้นที่ 3 เยี่ยมบัพลูกทางซ้ายสุดของบัพ 2 คือบัพ เริ่มต้น

41 ขั้นที่ 4 เยี่ยมบัพลูกทางซ้ายสุดของบัพ 4 คือบัพ เริ่มต้น

42 ขั้นที่ 5 เยี่ยมบัพลูกของบัพ 8 ไม่มี จึงถอยหลังเยี่ยมบัพลูกถัดไปของบัพ 4 ไม่มี เยี่ยมบัพถัดไปของบัพ 2 คือ เริ่มต้น

43 ขั้นที่ 6 เยี่ยมบัพลูกถัดไปของบัพ 2 ไม่มี จึงกลับไปเยี่ยมบัพลูก ถัดไปของบัพ ราก คือ เริ่มต้น

44 ขั้นที่ 7 เยี่ยมบัพลูกทางซ้ายสุดของบัพ 3 คือ บัพ เริ่มต้น

45 ขั้นที่ 8 เยี่ยมบัพลูกทางซ้ายสุดของบัพ 6 (เยี่ยมแล้ว) กลับมาเยี่ยมบัพถัดไปของ 6 (ไม่มี) จึงกลับมาเยี่ยมบัพลูกถัดไปของบัพ 3 คือ เริ่มต้น

46 ขั้นที่ 9 เยี่ยมบัพถัดไปของ 7 (มีแล้ว) กลับไปเรื่อย ปรากฏว่าเยี่ยมหมดแล้ว แสดงว่าการแวะผ่านได้สิ้นสุดลงแล้ว บัพบัพประชิด12,3 24, ตารางการแวะผ่านที่ได้ คือ เริ่มต้น

47 การประยุกต์ใช้กราฟ กราฟ เป็นเครื่องมือที่สำคัญในการแก้ปัญหาให้ลุล่วงไปได้ด้วยดีและมีความ รวดเร็ว เช่น การหาระยะทางของเส้นทางที่สั้นที่สั้นที่สุดระหว่างที่หนึ่งไปยังที่อื่นๆ การ หาระยะทางของเส้นทางที่สั้นที่สุดระหว่างที่ต่างๆ เป็นคู่ๆ การหาระยะทางของเส้นทาง หรือเวลาที่สั้นที่สุดที่เชื่อมทุกๆที่ เป็นต้น การหาระยะทางจะกำหนดให้บัพแทนสถานที่ ต่างๆ 1.การหาระยะทางของเส้นที่สั้นที่สุดจากบัพหนึ่งไปยังบัพอื่นๆ เป็นการหาระยะทางของเส้นทางที่สั้นที่สุดจากบัพที่เลือกเป็นบัพต้นทางไปยังบัพ ใดๆในกราฟ

48 เริ่มต้น จากบัพ 0 ไปยังบัพ 1 เส้นทางที่สั้นที่สุด คือ 80 จากบัพ 0 ไปยังบัพ 1 เส้นทางที่สั้นที่สุด คือ 80 จากบัพ 0 ไปยังบัพ 2 เส้นทางที่สั้นที่สุด คือ = 60 จากบัพ 0 ไปยังบัพ 2 เส้นทางที่สั้นที่สุด คือ = 60 จากบัพ 0 ไปยังบัพ 3 เส้นทางที่สั้นที่สุด คือ = 30 จากบัพ 0 ไปยังบัพ 3 เส้นทางที่สั้นที่สุด คือ = 30 จากบัพ 0 ไปยังบัพ 4 เส้นทางที่สั้นที่สุด คือ 10 จากบัพ 0 ไปยังบัพ 4 เส้นทางที่สั้นที่สุด คือ 10 การหาเส้นทางที่สั้นที่สุดจากบัพ 0 ไปยัง อื่นๆ ได้ดังนี้

49 โดยในการหาระยะทาง เวกเตอร์ d[ i ] จะบรรจุระยะทางของเส้นทางที่สั้น ที่สุดจากบัพเริ่มต้นไปยังบัพ i ในขณะนั้น สำหรับขั้นตอนวิธีของการหาเส้นทางที่สั้นสุด จากจากบัพหนึ่งไปยังบัพ อื่นๆ คือ For i=0 to n-1 do select w n-S such that d[w] is minimum add w to s for each node n n-S do d [v]=min(d [v],d[w]+C[w][v]) new old

50 2.การหาระยะทางของเส้นทางที่สั้นที่สุดระหว่างบัพเป็นคู่ๆ เป็นการหาของระยะทางของเส้นทางที่สั้นที่สุดของบัพที่ถูกเลือกเป็นบัพต้นทาง กับบัพใดบัพหนึ่งในกราฟ โดยใช้วิธีการของฟลอยด์(Floyd’s Method) ซึ่งเป็นเมทริกซ์ ประชิด C แทนกราฟG สำหรับการหาระยะทางของเส้นทางที่สั้นที่สุดของบัพ i ไปยังบัพ j ใช้สูตร ถ้า i=j ให้ [i][j]=0 i j และมีเส้นเชื่อม ให้ [i][j]=c[i][j] ไม่มีเส้นเชื่อม ให้ [i][j] =

51 เริ่มต้น แสดงเมทริกซ์ประชิดของกราฟ

52 จากเมทริกซ์ประชิด C สามารถนำมาหาระยะทางที่สั้นที่สุดระหว่าง บัพทุกๆคู่ได้ โดยมีขั้นตอนดังนี้ ขั้นที่ 1 สร้างเมทริกซ์ประชิด A 0 (เหมือนกับเมทริกซ์ประชิด C)

53 ขั้นที่ 2 หาค่า A[i][j] ในรอบการคำนวณที่ 1 โดยรอบนี้จะผ่านบัพ 2 บัพ คือ บัพ 0 และ 1

54 ขั้นที่ 3 หาค่า A[i][j] ในรอบการคำนวณที่ 2 โดยรอบนี้จะผ่านบัพ 3 บัพ คือ บัพ 0,1 และ 2 และผ่านเส้นเชื่อม 2 เส้น

55 ขั้นที่ 4 หาค่า A[i][j] ในรอบการคำนวณที่ 3 โดยรอบนี้จะผ่านบัพ 4 บัพ คือ บัพ 0,1,2 และ 3 และผ่านเส้นเชื่อม 3 เส้น

56 ขั้นที่ 5 หาค่า A[i][j] ในรอบการคำนวณที่ 4 โดยรอบนี้จะผ่านบัพ 5 บัพ คือ บัพ 0,1,2,3 และ 4 และผ่านเส้นเชื่อม 4 เส้น

57 3.การหาระยะทางของเส้นทางหรือเวลาที่สั้นที่สุดที่เชื่อมบัพทุกๆบัพ 3.การหาระยะทางของเส้นทางหรือเวลาที่สั้นที่สุดที่เชื่อมบัพทุกๆบัพ นิยมใช้ในงานที่เกี่ยวกับคมนาคม โดยกำหนดให้บัพแทนเมือง และ ให้เส้นเชื่อมแทนถนนระหว่างเมือง ผลลัพธ์ที่ได้จากการหาเส้นทางที่เชื่อม ทุกๆเมือง ด้วยระยะทางที่สั้นที่สุดหรือด้วยเวลาที่น้อยที่สุด มักจะเขียนใน ลักษณะของต้นไม้แบบทอดข้าม โดยที่กิ่งของต้นไม้คือเส้นเชื่อม และบัพ ของต้นไม้ คือบัพของกราฟที่แทนข่ายงานคมนาคมนั่นเอง นิยมใช้ในงานที่เกี่ยวกับคมนาคม โดยกำหนดให้บัพแทนเมือง และ ให้เส้นเชื่อมแทนถนนระหว่างเมือง ผลลัพธ์ที่ได้จากการหาเส้นทางที่เชื่อม ทุกๆเมือง ด้วยระยะทางที่สั้นที่สุดหรือด้วยเวลาที่น้อยที่สุด มักจะเขียนใน ลักษณะของต้นไม้แบบทอดข้าม โดยที่กิ่งของต้นไม้คือเส้นเชื่อม และบัพ ของต้นไม้ คือบัพของกราฟที่แทนข่ายงานคมนาคมนั่นเอง

58 ขั้นตอนการสร้างต้นไม้แบบทอดข้าม มีดังนี้ ขั้นที่ 1เลือกบัพใดๆมาหนึ่งบัพ เพื่อให้เป็นบัพรากของต้นไม้แบบทอดข้าม ขั้นที่ 2 พิจารณาดูว่าเส้นเชื่อมที่ออกจากบัพรากไปยังบัพประชิด เส้นใดที่มีค่าน้อย ที่สุดก็ให้เลือกเส้นเชื่อมนั้น ขั้นที่ 3 นำบัพประชิดในขั้นที่ 2 ไปเพิ่มในต้นไม้แบบทอดข้าม T ขั้นที่ 4 นำบัพประชิดในขั้นที่ 2 ไปเพิ่มในเซต U ทำวงตั้งแต่ขั้นที่ 2-4 ไปเรื่อยๆจนบัพใน U เท่ากับบัพใน V

59 a a กราฟ ประกอบด้วยบัพ 5 บัพ คือ a,b,c,d และ e ดังนี้ e e d d c c b b สามารถแสดงขั้นตอนการสร้างต้นไม้แบบทอดข้ามได้ดังนี้

60 ขั้นที่ 1 เลือกบัพ a เป็นบัพราก ดังนั้น U={a} a e e d d c c b b บัพราก

61 ขั้นที่ 2 เลือกเส้นเชื่อม (a,e) a e e d d c c b b บัพราก

62 ขั้นที่ 3 นำบัพประชิดในขั้นที่ 2 ไปเพิ่มในต้นไม้แบบทอดข้าม T a e d d c c b b บัพราก

63 ขั้นที่ 4 นำบัพประชิดในขั้นที่ 2 ไปเพิ่มในเซต U U={a,e} U={a,e} ทำวนขั้นที่ 2 เลือกเส้นเชื่อม (e,d) ทำวนขั้นที่ 2 เลือกเส้นเชื่อม (e,d) a e d d c c b b บัพราก

64 ทำวนขั้นที่ 3 เพิ่มบัพ d ในต้นไม้แบบทอดข้าม ทำวนขั้นที่ 3 เพิ่มบัพ d ในต้นไม้แบบทอดข้าม a e d c c b b บัพราก

65 ทำวนขั้นที่ 4 นำบัพ d ไปเพิ่มในเซต U ทำวนขั้นที่ 4 นำบัพ d ไปเพิ่มในเซต U U={a,e,d} U={a,e,d} ทำวนขั้นที่ 2 เลือกเส้นเชื่อม {d,e} ทำวนขั้นที่ 2 เลือกเส้นเชื่อม {d,e} a e d c c b b บัพราก

66 ทำวนขั้นที่ 3 เพิ่มบัพ c ในต้นไม้แบบทอดข้าม ทำวนขั้นที่ 3 เพิ่มบัพ c ในต้นไม้แบบทอดข้าม a e d c b b บัพราก

67 ทำวนขั้นที่ 4 นำบัพ c ไปเพิ่มในเซต U ทำวนขั้นที่ 4 นำบัพ c ไปเพิ่มในเซต U U={a,e,d,c} U={a,e,d,c} ทำวนขั้นที่ 2 เลือกเส้นเชื่อม {c,b} ทำวนขั้นที่ 2 เลือกเส้นเชื่อม {c,b} a e d c b b บัพราก

68 ทำวนขั้นที่ 3 เพิ่มบัพ b ในต้นไม้แบบทอดข้าม ทำวนขั้นที่ 3 เพิ่มบัพ b ในต้นไม้แบบทอดข้าม a e d c b บัพราก

69 ทำวนขั้นที่ 4 นำบัพ b ไปเพิ่มในเซต U ทำวนขั้นที่ 4 นำบัพ b ไปเพิ่มในเซต U U={a,e,d,c,b} U={a,e,d,c,b} จะเห็นว่าสมาชิกใน U เท่ากับสมาชิกของ V ดังนั้น การดำเนินการจึงสิ้นสุดลง จะเห็นว่าสมาชิกใน U เท่ากับสมาชิกของ V ดังนั้น การดำเนินการจึงสิ้นสุดลง (แสดงเส้นทางที่สั้นที่สุดที่เชื่อมบัพทุกๆบัพเข้าด้วยกัน) (แสดงเส้นทางที่สั้นที่สุดที่เชื่อมบัพทุกๆบัพเข้าด้วยกัน) a e d c b แสดงต้นไม้แบบทอดข้ามจากข่ายงาน

70 Any Question?

71 1. นายฮัฟซี เงาะ ( ประธาน ) 1. นายฮัฟซี เงาะ ( ประธาน ) 2. นางสาวจุฬาศิณีย์ เหมรา ( เลขานุการ ) 3. นางสาวสุไรนี โอะแขวน นางสาวนุรีซา สุหลง นายวาลิช เจ๊ะแม นายฮานาฟี สะไร นายมะเปาซี กะมะ นางสาวนูรไอมาน สะแปอิง นางสาวไซนับ เจ๊ะอุบง สมาชิกในกลุ่ม COMPUTER SCIENCE’54


ดาวน์โหลด ppt กราฟ (Graph) DATA STRUCTURE IN C กราฟ เป็นโครงสร้างข้อมูลแบบไม่เชิงเส้นชนิดหนึ่ง ซึ่งมี ลักษณะเป็นโครงสร้างข่ายงาน แบบไม่ตายตัว ที่สามารถแทรก ข้อมูลเข้าและข้อมูลออกได้

งานนำเสนอที่คล้ายกัน


Ads by Google