ต้นไม้ Tree [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Another one of Data Structure
Advertisements

โครงสร้างข้อมูลทรีและไบนารีทรี (Tree and Binary Tree)
ทฤษฎีกราฟเบื้องต้น อ.สุรัชน์ อินทสังข์ ภาควิชาหลักสูตรและการสอน
เอกสารประกอบการบรรยาย วิชา การออกแบบและพัฒนาฐานข้อมูล
Lists Data Structure LAUKHWAN NGAMPRASIT LAUKHWAN NGAMPRASIT.
สาขาวิชาคอมพิวเตอร์และเทคโนโลยี อ.เลาขวัญ งามประสิทธิ์
การจำลองความคิด รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
ต้นไม้และนิยามที่เกี่ยวข้อง
เว็บไซต์ สาขา สารสนเทศศาสตร์
Chapter 1 โครงสร้างข้อมูลและอัลกอริธึมส์
Decision Tree.
สถาปัตยกรรมฐานข้อมูล
AVL Tree.
ทฤษฏีกราฟเบื้องต้น ชั้นมัธยมศึกษาปีที่ 5.
วิชาโครงสร้างข้อมูล (Data Structure)
ระบบสารสนเทศ เพื่อการจัดการ และกรณีศึกษา
การเชื่อมโยงข้อมูลแบบ Internal Links
คิวQueue Circular Queue.
MAT 231: คณิตศาสตร์ไม่ต่อเนื่อง (6) ทรี-ต้นไม้(Trees)
วิทยาการคอมพิวเตอร์ 1 เรื่องคัดเฉพาะทาง
บทที่ 5 พจนานุกรมข้อมูล Data Dictionary
การออกแบบสื่อการเรียนรู้
ระบบฐานข้อมูล Data Directory
Charter 8 1 Chapter 8 การจัดการฐานข้อมูล Database Management.
ค32213 คณิตศาสตร์สำหรับคอมพิวเตอร์ 3 โรงเรียนปลวกแดงพิทยาคม
ต้นไม้กระจายทั่วกราฟ
การใช้งานเว็บคอนโทรลขั้นพื้นฐาน
เรื่องการออกแบบฐานข้อมูล
โครงสร้างข้อมูลทรีและไบนารีทรี (Tree and Binary Tree)
ลิงค์ลิสต์ (Linked List)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
รายละเอียดของประสบการณ์ภาคสนาม (มคอ.4)
Chapter 6 Repetition Structure[1] ผู้สอน อ. ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยี คอมพิวเตอร์เคลื่อนที่ ng.
ต้นไม้ Tree (2) ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Chapter 6 Repetition Structure[2] ผู้สอน อ. ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยี คอมพิวเตอร์เคลื่อนที่ ng.
Chapter 04 Flowchart ผู้สอน อ.ยืนยง กันทะเนตร
บทที่ 9 ไทร์ (Tries).
School of Information Communication Technology,
Lecture9 Tree อ. วรวิทย์ วีระพันธุ์ เรียบเรียงโดย อ
โครงสร้างข้อมูลและขั้นตอนวิธี (Data Structures and Algorithms)
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การแก้ปัญหาโปรแกรม (Flowchart)
งานเทคโนโลยีสารสนเทศ โรงเรียนพนมเบญจา
SE WEBSITE REQUIREMENT Wattanapong suttapak, Software Engineering, school of Information communication Tecnology, university of phayao.
คอมพิวเตอร์เบื้องต้นสำหรับธุรกิจ
รูปร่างเครือข่ายคอมพิวเตอร์ จัดทำโดย เด็กชาย คณิศร อ้อยกลาง เลขที่ 36 ม.2/5 เสนอ อ.สายฝน เอกกันทา โรงเรียนจักรคำคณาทร จ.ลำพูน.
การจำแนกข้อมูล(Classification) CART-Classification and regression Tree
Chapter 7 Mix problem ผู้สอน อ. ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยี คอมพิวเตอร์เคลื่อนที่ ng.
ความหมายและบทบาทของ เทคโนโลยีสารสนเทศ
การจัดเรียงข้อมูล (sorting)
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
ค32213 คณิตศาสตร์สำหรับคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ต้นไม้ Tree [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
สื่อการสอนการเขียนเว็บเพจ ด้วยภาษา HTML
ตรรกะพื้นฐานและการแก้ปัญหา Basic logic and Problem Solving 3(2-2-5)
รายละเอียดของรายวิชา (มคอ.3)
ทบทวนการแก้สมการเชิงเส้นตัวแปรเดียว
Chapter 05 Selection structure ผู้สอน อ. ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยี คอมพิวเตอร์เคลื่อนที่ ng.
บทที่ 7 การสร้างและการใช้งาน ฟังก์ชัน อาจารย์ชนิดา คำเพ็ง สาขาวิชาเทคโนโลยีสารสนเทศ คณะวิทยาศาสตร์ และเทคโนโลยี
รายการ (Lis t) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยีคอมพิวเตอร์เคลื่อนที่ คณะเทคโนโลยีสารสนเทศและการสื่อสาร Website : ict.up.ac.th/yeunyong.
กลุ่มสาระการเรียนรู้ การงานอาชีพและเทคโนโลยี
แบบ Star จะเป็นลักษณะของการต่อ เครือข่ายที่ Work station แต่ละตัวต่อรวมเข้าสู่ ศูนย์กลางสวิตซ์ เพื่อสลับตำแหน่งของเส้นทาง ของข้อมูลใด ๆ ในระบบ ดังนั้นใน.
ค32213 คณิตศาสตร์สำหรับคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
Burin Rujjanapan Updated:
บทที่ 9 การอธิบายกระบวนการแบบต้นไม้.
Data Structures and Algorithms 2/2561
4.7. B-Trees โครงสร้าง tree ที่กล่าวถึงมาแล้วนั้น อยู่บนสมมติฐานที่ว่าโครงสร้างทั้งหมดสามารถจัดเก็บอยู่ในหน่วยความจำของเครื่องคอมพิวเตอร์ได้ ถ้า จำนวนข้อมูลมีปริมาณมากเกินกว่าที่จะเก็บไว้ใน.
Data Structure and Algorithms
ใบสำเนางานนำเสนอ:

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

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

root node branch ลักษณะของโครงสร้างข้อมูลแบบต้นไม้

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

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

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

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

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

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

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

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

parents children leaves internal nodes depth degree(A) degree(B) degree(H) degree(C) degree(E) A, B, F 3 B, E, F, C, D, G, H, I 2 E, C, D, G, H, I B, F 3

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

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

Empty หรือ Null Tree

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

A B C D E F G A B D nmax = 7 nmin = 3 จะได้ว่า nmax = 2h – 1 nmin = h ถ้าเรารู้ความสูงของ binary tree = 3 A B C D E F G A B D nmax = 7 nmin = 3 จะได้ว่า nmax = 2h – 1 nmin = h

A B C D E A B C D E hmin = 3 hmax = 5 จะได้ว่า hmin = log2n + 1 ถ้าเรารู้ความจำนวน node ของ binary tree = 5 A B C D E A B C D E hmin = 3 hmax = 5 จะได้ว่า hmin = log2n + 1 hmax = n

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

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

A B C D E F G H ตัวอย่าง ข้อมูลในหน่วยความจำ general binary tree root data left right A 1 1 A 2 3 2 B 6 4 B C 3 C 7 -1 4 E 8 5 5 H -1 -1 D E F 6 D -1 -1 7 F -1 -1 G H 8 G -1 -1

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

A B C D E G F H I ตัวอย่าง general binary tree 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ข้อมูลในหน่วยความจำ A B C D E - F G H I 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

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

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

ตัวอย่าง