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

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

ต้นไม้ Tree [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยีคอมพิวเตอร์เคลื่อนที่ คณะเทคโนโลยีสารสนเทศและการสื่อสาร Website : ict.up.ac.th/yeunyong.

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


งานนำเสนอเรื่อง: "ต้นไม้ Tree [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยีคอมพิวเตอร์เคลื่อนที่ คณะเทคโนโลยีสารสนเทศและการสื่อสาร Website : ict.up.ac.th/yeunyong."— ใบสำเนางานนำเสนอ:

1 ต้นไม้ Tree [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยีคอมพิวเตอร์เคลื่อนที่ คณะเทคโนโลยีสารสนเทศและการสื่อสาร Website : ict.up.ac.th/yeunyong

2 หัวข้อวันนี้ โครงสร้างทั่วไปของต้นไม้ (Introduction) การเรียกชื่อส่วนต่างๆ ของต้นไม้ (terminology) ต้นไม้แบบทวิภาค (binary tree) คุณลักษณะของต้นไม้แบบ ทวิภาค การแทนต้นไม้แบบทวิภาคใน คอมพิวเตอร์ 2

3 3 root nod e bra nch ลักษณะของโครงสร้างข้อมูลแบบต้นไม้

4 โครงสร้างทั่วไปของต้นไม้ เป็น โครงสร้างข้อมูลแบบไม่เป็นรายการเชิง เส้น (Non-Linear Data Structure) ลักษณะคล้ายกิ่งก้านของต้นไม้ ( แต่กลับหัว ) ประกอบด้วยจุดยอดของต้นไม้เรียกว่า ราก (Root) จุดที่มีการแตกกิ่งก้านสาขาออกไปเรียกว่า โหนด (Node) กิ่งก้านสาขาที่เชื่อมต่อระหว่างโหนดเรียกว่า กิ่ง (Branch) หรือ ลิงค์ (Link) ส่วนย่อยของต้นไม้ ก็เป็นต้นไม้ (subtree) ทุกโหนดเป็น root ของ subtree ของตัว มันเอง 4

5 5 R เป็น root ของ subtree A,B,C,D A เป็น root ของ subtree E,F,G F เป็น root ของ subtree J C เป็น subtree ที่มีแต่ root C

6 การเรียกชื่อส่วนต่างๆ ของต้นไม้ ต้นไม้ (tree) ประกอบด้วย 1.node ส่วนเก็บข้อมูล 2.branch ใช้เชื่อม node เข้าด้วยกัน 6 A BC nodeA, B, C branchAB, AC nodeA, B, C branchAB, AC

7 root หมายถึง node แรกของ tree 7 A BC root A โหนดอื่นๆ B, C root A โหนดอื่นๆ B, C node A มี degree เท่ากับ 2 node B มี degree เท่ากับ 0 node C มี degree เท่ากับ 0 node A มี degree เท่ากับ 2 node B มี degree เท่ากับ 0 node C มี degree เท่ากับ 0 Degree หมายถึง จำนวน subtree ที่สัมพันธ์ กับ Node นั้นๆ

8 leaf หมายถึง node ที่มีดีกรีเท่ากับ 0 8 root A leafD, E, C root A leafD, E, C branch nodeB branch nodeB internal node, branch node หมายถึง node ที่ไม่ใช่ root และ leaf A BCB DE

9 parent หมายถึง node ที่มีดีกรีมากกว่า 0 (node ที่มี subtree ) 9 parent A, B childB, C, D, E childB, C, D, E child หมายถึง node ที่เป็น subtree ของ tree อื่น A BCB DE

10 level หมายถึงระยะทางจาก root จนถึง node นั้นๆ 10 depth = = 3 depth = = 3 height หรือ depth ของ tree หมายถึง level สูงสุด ของ leaf บวกด้วย 1 A BCB DE level 0 level 1 level 2

11 sibling หมายถึงโหนดที่มี parent ร่วมกัน 11 sibling ของ B คือ C sibling ของ D คือ E และ F sibling ของ B คือ C sibling ของ D คือ E และ F A BCB DFE

12 12 parentschildrenleaves internal nodes depthparentschildrenleaves depth A, B, F B, E, F, C, D, G, H, I E, C, D, G, H, I B, F 3 degree(A ) degree(B ) degree(H ) degree(C ) degree(E ) degree(A ) degree(B ) degree(H ) degree(C ) degree(E )

13 Exercis e 1 - node ที่เป็น parent - node ที่เป็น child - level ของ tree - height ของ tree - degree ของแต่ละ โหนด - parent ของแต่ละ โหนด - children ของแต่ละ โหนด - sibling ของแต่ละ โหนด 13 A B C DE H L F K G O 1. จาก tree ต่อไปนี้ จง หา - node ที่เป็น root - node ที่เป็น leaf - node ที่เป็น internal node I J M N

14 14 ต้นไม้แบบทวิภาค (binary tree) หมายถึง tree ที่แต่ละ node มีจำนวน subtree <= 2 ( แต่ละ node มี degree <= 2 )

15 15 Emptyหรือ Null Tree

16 คุณลักษณะของต้นไม้ แบบทวิภาค ความสัมพันธ์ระหว่างความสูง (hight) และ จำนวน node ใน binary tree กำหนดให้ h เป็นความสูงของ binary tree n เป็นจำนวน node ใน binary tree ถ้าเรารู้ความสูง (h) ต้องสามารถหาจำนวน node (n) มากที่สุดและน้อยที่สุดที่เป็นไปได้ของ binary tree นั้นได้ ถ้าเรารู้จำนวน node (n) ต้องสามารถหาความ สูง (h) มากที่สุดและน้อยที่สุดที่เป็นไปได้ของ binary tree นั้นได้ 16

17 ถ้าเรารู้ความสูงของ binary tree = 3 17 จะได้ว่า n max =2 h – 1 n min =h จะได้ว่า n max =2 h – 1 n min =h A BC DE FG n max = 7 A B D n min = 3

18 ถ้าเรารู้ความจำนวน node ของ binary tree = 5 18 จะได้ว่า h min =log 2 n + 1 h max =n จะได้ว่า h min =log 2 n + 1 h max =n A BC DE h min = 3 h max = 5 A B C D E

19 การแทนต้นไม้แบบทวิภาคใน คอมพิวเตอร์ binary tree สามารถแทนใน คอมพิวเตอร์ได้ 2 แบบ คือ การแทนโดยอาศัยอาร์เรย์ ใช้อาร์เรย์ 3 อาร์เรย์ในการจัดเก็บ ใช้อาร์เรย์ 1 มิติอาร์เรย์เดียวใน การจัดเก็บ การแทนโดยอาศัย pointer 19

20 การแทนโดยใช้อาร์เรย์ 3 อาร์เรย์ในการจัดเก็บ จะใช้อาร์เรย์ที่มีขนาดเท่ากันจำนวน 3 ชุด คือ data – เก็บข้อมูลในแต่ละ node left – เก็บตำแหน่งของ node ลูกทางด้าน ซ้ายมือ right – เก็บตำแหน่งของ node ลูกทางด้าน ขวามือ ถ้า node ใดไม่มี node ลูก ให้เก็บค่า -1 ( แทน NULL) และใช้ตัวแปร root เก็บตำแหน่งของ node แรกใน tree 20

21 21 A23 B64 C7 E85 H D F G da ta lef t rig ht 1 ro ot A BC DE F GH ตัวอย่าง ข้อมูลใน หน่วยความ จำ general binary tree

22 การแทนโดยใช้อาร์เรย์ 1 มิติอาร์เรย์ เดียวในการจัดเก็บ กำหนดตำแหน่งช่องในอาร์เรย์ให้แต่ละ node โดย เริ่มตั้งแต่ level 0, 1, …, k ตามลำดับ แต่ละ level จะเริ่มจาก node ทางด้านซ้าย สุดไปถึงโหนดทางขวาสุด ตามลำดับ ลักษณะเป็นการนนับช่องจากบนลงล่าง, ซ้าย ไปขวา การกำหนดตำแหน่งเช่นนี้จะไม่สนใจว่ามีข้อมูล ของโหนดนั้นจริงหรือไม่ (Fix ตำแหน่งอาร์เรย์ ไว้ ) 22

23 23 1 A BC DE G F H I ABCDE-FG--H---I general binary tree ข้อมูลใน หน่วยความจำ ตัวอย่าง

24 จะได้ความสัมพันธ์ระหว่าง tree และ อาร์เรย์ ดังนี้ ถ้า binary tree มีความสูงเท่ากับ h จะต้อง ใช้อาร์เรย์ที่มีขนาด 2 h – 1 ในการจัดเก็บ parent ของโหนด i ใดๆ จะอยู่ที่ตำแหน่ง i/2 ถ้า i ไม่เท่ากับ 1 left child ของโหนด i ใดๆ จะอยู่ที่ตำแหน่ง 2i right child ของโหนด i ใดๆ จะอยู่ที่ ตำแหน่ง 2i

25 การแทนโดยอาศัย pointer เป็นวิธีการจัดเก็บที่มีประสิทธิภาพ เนื่องจากไม่ เกิดปัญหาการจองข้อมูลมากหรือน้อยเกินไป โดยข้อมูลแต่ละ node ของ tree จะประกอบไป ด้วย data – เก็บข้อมูลในแต่ละ node Lptr – เก็บ address ของ node ลูก ทางด้านซ้ายมือ Rptr – เก็บ address ของ node ลูก ทางด้านขวามือ 25

26 26 ตัวอย่าง


ดาวน์โหลด ppt ต้นไม้ Tree [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยีคอมพิวเตอร์เคลื่อนที่ คณะเทคโนโลยีสารสนเทศและการสื่อสาร Website : ict.up.ac.th/yeunyong.

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


Ads by Google