Download - บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)
![Page 1: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/1.jpg)
บทท่ี บทท่ี 7 7 ทร ีทร ี((TreesTrees))
((สว่นท่ี สว่นท่ี 1)1)
By Juthawut By Juthawut ChantharamaleeChantharamalee 11วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
![Page 2: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/2.jpg)
แนวคิดพื้นฐานของทร ีแนวคิดพื้นฐานของทร ี((Basic Basic Tree Concepts) Tree Concepts) โครงสรา้งขอ้มูลแบบทรเีป็นโครงสรา้งท่ีมคีวามโครงสรา้งขอ้มูลแบบทรเีป็นโครงสรา้งท่ีมคีวามสมัพนัธใ์นลักษณะลำาดับชัน้ โดยสมาชกิแต่ละโหนด สมัพนัธใ์นลักษณะลำาดับชัน้ โดยสมาชกิแต่ละโหนด ((NodeNode ) ) ล้วนแต่มคีวามสมัพนัธใ์นลักษณะเหมอืนล้วนแต่มคีวามสมัพนัธใ์นลักษณะเหมอืนครอบครวัเดียวกัน โดยมโีหนดพอ่ ครอบครวัเดียวกัน โดยมโีหนดพอ่ ((ParentParent ) ) ท่ีอยู่ท่ีอยู่ระดับเหนือกวา่ มเีสน้เชื่อมไปยงัโหนดลกู ระดับเหนือกวา่ มเีสน้เชื่อมไปยงัโหนดลกู ((ChildChild ) )โดยท่ีโหนดลกูตัง่แต่สองโหนดหรอืมากกวา่ท่ีมาจากโดยท่ีโหนดลกูตัง่แต่สองโหนดหรอืมากกวา่ท่ีมาจากพอ่เดียวกันจะเรยีกวา่โหนดพีน่้อง พอ่เดียวกันจะเรยีกวา่โหนดพีน่้อง ((SiblingsSiblings ) )สำาหรบัความสมัพนัธอ่ื์นๆ เชน่ บรรพบุรุษ สำาหรบัความสมัพนัธอ่ื์นๆ เชน่ บรรพบุรุษ ((AncestorAncestor ) ) หรอืลกูหลาน หรอืลกูหลาน (Descendent) (Descendent) โหนดโหนดต่างๆ ภายในทรจีะอยูใ่นระดับ ต่างๆ ภายในทรจีะอยูใ่นระดับ ((LevelLevel ) ) ท่ีแตกต่างกันท่ีแตกต่างกัน
22วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
![Page 3: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/3.jpg)
33วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
รูปท่ี 71. ทร ี(Trees)
Level 0 A
Level 1
Level 2
EB
C D
F
HG I
Root
Branch AF
Branch FI
![Page 4: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/4.jpg)
44วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
รูปท่ี 72 ซบัทร ี(Subtree)
A
EB
C D
F
HG I
Subtree B
Root of
Subtree I
![Page 5: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/5.jpg)
รูปแบบการนำาเสนอรูปแบบการนำาเสนอโครงสรา้งขอ้มูลทร ี โครงสรา้งขอ้มูลทร ี ((Tree Tree Representation) Representation) เราสามารถนำาเสนอโครงสรา้งขอ้มูลทรใีห้เราสามารถนำาเสนอโครงสรา้งขอ้มูลทรใีห้
แตกต่างกันได้ถึง แตกต่างกันได้ถึง 3 3 รูปแบบด้วยกันคือรูปแบบด้วยกันคือ
55วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสัรหสั 41222024122202
1. 1. แบบโครงสรา้งทรทัีว่ไป แบบโครงสรา้งทรทัีว่ไป ((General Tree) General Tree)
เป็นรูปแบบการนำาเสนอเหมอืนกับเป็นรูปแบบการนำาเสนอเหมอืนกับผังองค์กรทัว่ไปท่ีลดหลัน่เป็นลำาดับขัน้ ผังองค์กรทัว่ไปท่ีลดหลัน่เป็นลำาดับขัน้ ซึ่งรูปแบบดังกล่าว ถือวา่เป็นรูปแบบซึ่งรูปแบบดังกล่าว ถือวา่เป็นรูปแบบของทรท่ีีนิยมใชง้านโดยทัว่ไป โดยของทรท่ีีนิยมใชง้านโดยทัว่ไป โดยตัวอยา่งแสดงไวด้ังรูปท่ี ตัวอยา่งแสดงไวด้ังรูปท่ี 73. ( 73. (aa))
![Page 6: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/6.jpg)
เป็นรูปแบบท่ีคล้ายกับการเขยีนโปรแกรมเชงิเป็นรูปแบบท่ีคล้ายกับการเขยีนโปรแกรมเชงิโครงสรา้ง ท่ีใชย้อ่หน้าเป็นตัวกำาหนดรูปแบบของโครงสรา้ง ท่ีใชย้อ่หน้าเป็นตัวกำาหนดรูปแบบของโครงสรา้งในสว่นระดับยอ่ยๆ ลงไป โดยตัวอยา่งโครงสรา้งในสว่นระดับยอ่ยๆ ลงไป โดยตัวอยา่งแสดงไวดั้งรูปท่ี แสดงไวดั้งรูปท่ี 73. ( 73. (bb))
66วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
3. 3. แบบวงเล็บ แบบวงเล็บ ((Parenthetical List) Parenthetical List)
รูปแบบน้ีมคีวามคล้ายคลึงกับการรูปแบบน้ีมคีวามคล้ายคลึงกับการแทนขอ้มูลด้วยนิพจน์คณิตศาสตรด์้วยแทนขอ้มูลด้วยนิพจน์คณิตศาสตรด์้วยการใชเ้ครื่องหมายวงเล็บกำากับ โดยการใชเ้ครื่องหมายวงเล็บกำากับ โดยตัวอยา่งแสดงไวด้ังรูปท่ี ตัวอยา่งแสดงไวด้ังรูปท่ี 73. ( 73. (cc))
2. 2. แบบยอ่หน้า แบบยอ่หน้า ((Indent List) Indent List)
![Page 7: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/7.jpg)
77วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสัรหสั 41222024122202
รูปท่ี 73. การนำาเสนอสว่นประกอบของคอมพวิเตอรใ์นรูปแบต่างๆ
Computer ((case(…) CPU(Controller ALU … ROM) 3.5 “DISK(…) … CD-ROM(…)” )(c ) แบบวงเล็บ (Parenthetical Parenthetical
ListList)
(b ) แบบยอ่หน้า (Indent ListList)
(a)แบบโครงสรา้งทรทัีว่ไป (Indent ListList)
Computer case CPU Controller ALU ROM) 3.5 “DISK(…) CD-ROM
Computer
Case CPU 3.5”DISK
CD-ROM
Controller ALU ROM
. . .
. . .
. . .
![Page 8: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/8.jpg)
88วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
อักอรทึิมท่ี 71 การแปลงโครงสรา้งทรแีบบทัว่ไปมาเป็นวงเล็บ
Algorithm ConvertToParen (root, output) Convert a general tree to parenthetical notation. Pre root is a pointer to a tree node Post output contains parenthetical notation1 Place root in output2 if (root is a parent) 1 Place an open parenthesis in the output 2 ConvertToParen (root's first child) 3 loop (more siblings) 1 ConvertToParen (root's next child) 4 end loop 5 place close parenthesis in the output3 end if4 returnend ConvertToParen
![Page 9: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/9.jpg)
ไบนารทีร ีไบนารทีร ี((Binary Binary Tree) Tree) ไบนารทีรจีดัเป็นทรชีนิดหน่ึงท่ีมคีวามสำาคัญมาก ไบนารทีรจีดัเป็นทรชีนิดหน่ึงท่ีมคีวามสำาคัญมาก
โดยมคีณุสมบติัท่ีสำาคัญคือ เป็นทรท่ีีสามารถมีโดยมคีณุสมบติัท่ีสำาคัญคือ เป็นทรท่ีีสามารถมีลกูได้ไมเ่กินสองโหนด ในทกุๆ โหนดอาจมเีพยีงลกูได้ไมเ่กินสองโหนด ในทกุๆ โหนดอาจมเีพยีงด้านซา้ยและด้านขวา หรอือาจมลีกูทัง้ซา้ยและด้านซา้ยและด้านขวา หรอือาจมลีกูทัง้ซา้ยและขวา หรอือาจไมม่ลีกูเลยก็ได้ หรอืกล่าวอีกนัยขวา หรอือาจไมม่ลีกูเลยก็ได้ หรอืกล่าวอีกนัยหนึ่งก็คือ เป็นทรท่ีีแต่ละโหนดจะมซีบัทร ีหนึ่งก็คือ เป็นทรท่ีีแต่ละโหนดจะมซีบัทร ี<=2 <=2 นัน้เอง พจิารณารูปท่ี นัน้เอง พจิารณารูปท่ี 74. 74. ซึ่งเป็นไบนารทีรท่ีีซึ่งเป็นไบนารทีรท่ีีประกอบด้วย ประกอบด้วย 2 2 ซบัทร ีโดยแต่ละซบัทรทัีง้ด้านซบัทร ีโดยแต่ละซบัทรทัีง้ด้านซา้ยและด้านขวาต่างมคีณุสมบติัเป็นไบนารทีรีซา้ยและด้านขวาต่างมคีณุสมบติัเป็นไบนารทีรี
99วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสัรหสั 41222024122202
![Page 10: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/10.jpg)
1010วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
รูปท่ี 75 ไบนารทีรรีูปแบบต่าง
(a)
No nodes(null tree)
(b)
A
(b)
AB
(d)
AB
(e)
(f)
AB C
D E
AB C
(g)
(h)
AB
C
A
BC
![Page 11: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/11.jpg)
คณุสมบติัของไบนารทีร ีคณุสมบติัของไบนารทีร ี((Properties) Properties) ด้วยคณุสมบติัของไบนารทีร ีจงึทำาใหไ้บนารทีรมีีด้วยคณุสมบติัของไบนารทีร ีจงึทำาใหไ้บนารทีรมีีคณุสมบติัพเิศษกวา่ทรทัีว่ไป ซึ่งประกอบด้วยคณุสมบติัคณุสมบติัพเิศษกวา่ทรทัีว่ไป ซึ่งประกอบด้วยคณุสมบติัท่ีสามารถนำาไปคำานวณเพื่อหาผลลัพธไ์ด้ดังต่อไปน้ีท่ีสามารถนำาไปคำานวณเพื่อหาผลลัพธไ์ด้ดังต่อไปน้ี
1111วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
ความสงูของไบนารทีร ีความสงูของไบนารทีร ี((Height of Binary Tree) Height of Binary Tree)
ความสงูหรอืความลึกของไบนารทีรีความสงูหรอืความลึกของไบนารทีรีสามารถนำาไปใชเ้พื่อคำานวณกับสิง่ต่อไปนี้สามารถนำาไปใชเ้พื่อคำานวณกับสิง่ต่อไปนี้
![Page 12: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/12.jpg)
1212วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
ความสงูมากท่ีสดุของทร ีความสงูมากท่ีสดุของทร ี((Maximum Height) Maximum Height)
หากต้องการจดัเก็บโหนดจำานวน หากต้องการจดัเก็บโหนดจำานวน N N โหนดในไบนารทีร ีความสงูมากท่ีสดุของโหนดในไบนารทีร ีความสงูมากท่ีสดุของทรดัีงกล่าวสามารถคำานวณได้จากสตูรทรดัีงกล่าวสามารถคำานวณได้จากสตูร Hmax = N
EX. EX. มโีหนดจำานวน มโีหนดจำานวน 3 3 โหนด และโหนด และต้องการจดัเก็บไวใ้นไบนาร ีความสงูมากต้องการจดัเก็บไวใ้นไบนาร ีความสงูมากท่ีสดุของทรก็ีคือ ท่ีสดุของทรก็ีคือ Hmax เท่ากับ เท่ากับ 3 3 นัน้นัน้เอง ซึ่งเป็นไปได้ดังรูปท่ี เอง ซึ่งเป็นไปได้ดังรูปท่ี 75. ( 75. (gg ) ) หรอืหรอืรูปท่ี รูปท่ี 75. ( 75. (hh))
![Page 13: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/13.jpg)
1313วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
ความสงูน้อยท่ีสดุของทร ีความสงูน้อยท่ีสดุของทร ี((Minimum Height) Minimum Height)
หากต้องการจดัเก็บโหนดจำานวน หากต้องการจดัเก็บโหนดจำานวน N N โหนดในไบนารทีร ีความสงูน้อยท่ีสดุของโหนดในไบนารทีร ีความสงูน้อยท่ีสดุของทรดัีงกล่าวสามารถคำานวณได้จากสตูรทรดัีงกล่าวสามารถคำานวณได้จากสตูร Hmin = [log2 N] + 1
EX. EX. มโีหนดจำานวน มโีหนดจำานวน 3 3 โหนด และโหนด และต้องการจดัเก็บไวใ้นไบนาร ีความสงูมากต้องการจดัเก็บไวใ้นไบนาร ีความสงูมากท่ีสดุของทรก็ีคือ ท่ีสดุของทรก็ีคือ Hmin เท่ากับ เท่ากับ 2 2 นัน้นัน้เอง ซึ่งเป็นไปได้ดังรูปท่ี เอง ซึ่งเป็นไปได้ดังรูปท่ี 75. ( 75. (ee))
![Page 14: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/14.jpg)
1414วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
จำานวนโหนดน้อยท่ีสดุ จำานวนโหนดน้อยท่ีสดุ ((Minnimum Nodes) Minnimum Nodes)
เราสามารถคำานวณเพื่อทำาการตัดสนิใจเราสามารถคำานวณเพื่อทำาการตัดสนิใจวา่ จำานวนโหนดน้อยท่ีสดุท่ีสามารถมไีด้ในวา่ จำานวนโหนดน้อยท่ีสดุท่ีสามารถมไีด้ในไบนารมีจีำานวนเท่าไรได้จากสตูรไบนารมีจีำานวนเท่าไรได้จากสตูร Hmax = H
EX. EX. ทรมีคีวามสงูเท่ากับ ทรมีคีวามสงูเท่ากับ 3 3 อยากทราบอยากทราบวา่ จำานวนโหนดท่ีสามารถมไีด้น้อยท่ีสดุวา่ จำานวนโหนดท่ีสามารถมไีด้น้อยท่ีสดุเท่าไร จากสตูรการคำานวณขา้งต้น เท่าไร จากสตูรการคำานวณขา้งต้น Hmin มค่ีาเท่ากับ มค่ีาเท่ากับ 3 3 นัน้เอง ซึ่งเป็นไปได้ดังรูปนัน้เอง ซึ่งเป็นไปได้ดังรูปท่ี ท่ี 75. ( 75. (gg ) ) หรอืรูปท่ี หรอืรูปท่ี 75. ( 75. (hh))
![Page 15: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/15.jpg)
1515วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
จำานวนโหนดมากท่ีสดุ จำานวนโหนดมากท่ีสดุ ((Maximum Nodes) Maximum Nodes)
เราสามารถคำานวณเพื่อทำาการตัดสนิใจเราสามารถคำานวณเพื่อทำาการตัดสนิใจวา่ จำานวนโหนดมากท่ีสดุท่ีสามารถมไีด้ในวา่ จำานวนโหนดมากท่ีสดุท่ีสามารถมไีด้ในไบนารมีจีำานวนเท่าไรได้จากสตูร ไบนารมีจีำานวนเท่าไรได้จากสตูร ((แต่ละแต่ละโหนดสามารถมลีกูสงูสดุได้ไมเ่กิน โหนดสามารถมลีกูสงูสดุได้ไมเ่กิน 2 2โหนดโหนด)) Hmax = 2H - 1
EX. EX. ทรมีคีวามสงูเท่ากับ ทรมีคีวามสงูเท่ากับ 3 3 อยากทราบอยากทราบวา่ จำานวนโหนดท่ีสามารถมไีด้น้อยท่ีสดุวา่ จำานวนโหนดท่ีสามารถมไีด้น้อยท่ีสดุเท่าไร จากสตูรการคำานวณขา้งต้น เท่าไร จากสตูรการคำานวณขา้งต้น Hmax มค่ีาเท่ากับ มค่ีาเท่ากับ 77
![Page 16: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/16.jpg)
1616วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
ความสมดลุ ความสมดลุ ((Balance) Balance)
ความสมดลุหาได้จาก ความสมดลุหาได้จาก Balance Balance Factor Factor เท่ากับ เท่ากับ 0 0 ซึ่งค่าดังกล่าวซึ่งค่าดังกล่าวคำานวณได้จากการนำาความสงูของซบัทรีคำานวณได้จากการนำาความสงูของซบัทรีด้านซา้ย ด้านซา้ย ((HL ) ) มาลบกับความสงูของซบัมาลบกับความสงูของซบัทรด้ีานขวา ทรด้ีานขวา ((HR ) ) ท่ีเป็นไปตามสตูรดังนี้ท่ีเป็นไปตามสตูรดังนี้ B = HL - HR
และจากสตูรดังกล่าว ความสมดลุของทรีและจากสตูรดังกล่าว ความสมดลุของทรีจากรูปท่ี จากรูปท่ี 75. 75. ก็คือ ก็คือ ((aa ) ) = 0, (b) = 0, (b) = 0, (c) = 1, (d) = -1, (e) = 0, = 0, (c) = 1, (d) = -1, (e) = 0, (f) =1, (g) = -2 (f) =1, (g) = -2 และ และ (h) = 2 (h) = 2
![Page 17: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/17.jpg)
1717วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสัรหสั 41222024122202
รูปที่ 76. ไบนารทีรรูีปแบบต่าง
HL = 0
Balance Factor = -2
AB C
D E
A
CB
HR = 2
Balance Factor = 1
HR = 1
HL = 2
![Page 18: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/18.jpg)
ไบนารทีรแีบบสมบูรณ์และเกือบไบนารทีรแีบบสมบูรณ์และเกือบสมบูรณ์ สมบูรณ์ ((Complete and Complete and Nearly Complete Binary Nearly Complete Binary Tree) Tree) ไบนารทีรแีบบสมบูรณ์นัน้จะมจีำานวนโหนดสงูสดุท่ีไบนารทีรแีบบสมบูรณ์นัน้จะมจีำานวนโหนดสงูสดุท่ีสามารมไีด้ ซึ่งเป็นไปตามสตูร สามารมไีด้ ซึ่งเป็นไปตามสตูร HHmax max โดยโหนดของโดยโหนดของซบัทรดี้านซา้ยและซบัทรดี้านขวาจะมจีำานวนเท่ากัน ซบัทรดี้านซา้ยและซบัทรดี้านขวาจะมจีำานวนเท่ากัน สำาหรบัตัวอยา่งไบนารทีรแีบบสมบูรณ์ แสดงไวดั้งสำาหรบัตัวอยา่งไบนารทีรแีบบสมบูรณ์ แสดงไวดั้งรูปท่ี รูปท่ี 77. ( 77. (aa ) ) ในขณะท่ีไบนารทีรเีกือบสมบูรณ์ก็ในขณะท่ีไบนารทีรเีกือบสมบูรณ์ก็จะเป็นไปตามสตูร จะเป็นไปตามสตูร HHminmin หรอืเป็นทรท่ีีมโีหนดเต็มทกุหรอืเป็นทรท่ีีมโีหนดเต็มทกุโหนด ยกเวน้ในระดับโหนดสดุท้ายท่ีมโีหนดเฉพาะโหนด ยกเวน้ในระดับโหนดสดุท้ายท่ีมโีหนดเฉพาะทางด้านซา้ย ซึ่งเป็นไปได้ดังรูปท่ี ทางด้านซา้ย ซึ่งเป็นไปได้ดังรูปท่ี 77. ( 77. (bb ) )
1818วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสัรหสั 41222024122202
![Page 19: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/19.jpg)
1919วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
รูปท่ี 77. ไบนารทีรี(b) ไบนารทีรีเกือบสมบูรณ์
AB C
D E F
AB C
D E
AB C
D
(a) ไบนารทีรแีบบสมบูรณ์
AB C
D E F G
AB C
A
![Page 20: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/20.jpg)
การแทนไบนารทีรใีนการแทนไบนารทีรใีนหน่วยความจำา หน่วยความจำา ((Binary Tree Binary Tree Representation) Representation) ในที่น้ีจะกล่าวถึงการแทนโครงสรา้งไบนารทีรใีนในที่น้ีจะกล่าวถึงการแทนโครงสรา้งไบนารทีรใีนหน่วยความจำาแบบหน่ึงมติิ ในกรณีท่ีทรอียูใ่นรูปแบบหน่วยความจำาแบบหน่ึงมติิ ในกรณีท่ีทรอียูใ่นรูปแบบของไบนารทีรแีบบสมบูรณ์ ก็จะลำาดับขอ้มูลในทรีของไบนารทีรแีบบสมบูรณ์ ก็จะลำาดับขอ้มูลในทรีแต่ละระดับด้วยการเรยีงจากซา้ยไปขวา จากรูปที่ แต่ละระดับด้วยการเรยีงจากซา้ยไปขวา จากรูปที่ 77
8. 8. เป็นตัวอยา่งไบนารทีรแีบบสมบูรณ์ เมื่อนำามาเป็นตัวอยา่งไบนารทีรแีบบสมบูรณ์ เมื่อนำามาแทนโครงสรา้งด้วยอารเ์รยห์น่ึงมติิ ก็จะมกีารลำาดับแทนโครงสรา้งด้วยอารเ์รยห์น่ึงมติิ ก็จะมกีารลำาดับตำาแหน่งขอ้มูลดังน้ีตำาแหน่งขอ้มูลดังน้ี
2020วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
การแทนไบนารีการแทนไบนารีทรด้ีวยอารเ์รย์ทรด้ีวยอารเ์รย์
![Page 21: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/21.jpg)
2121วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
รูปท่ี 78 ตัวอยา่งไบนารทีรแีบบสมบูรณ์
AB C
D E F G
A B C D E F G(0)
(1)
(2)
(3)
(4)
(5)
(6)
![Page 22: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/22.jpg)
อยา่งไรก็ตาม ในกรณีท่ีทรนัีน้เป็นไบนารแีบบไมส่มบูรณ์หรอืเกือบอยา่งไรก็ตาม ในกรณีท่ีทรนัีน้เป็นไบนารแีบบไมส่มบูรณ์หรอืเกือบสมบูรณ์ ลำาดับตำาแหน่งจะมกีารจดัเรยีงแตกต่างไปจากเดิม แต่ยงัสมบูรณ์ ลำาดับตำาแหน่งจะมกีารจดัเรยีงแตกต่างไปจากเดิม แต่ยงัคงสามารถกระทำาตามขัน้ตอนเชน่เดิมได้ โดยแปลงไบนารทีรท่ีีไม่คงสามารถกระทำาตามขัน้ตอนเชน่เดิมได้ โดยแปลงไบนารทีรท่ีีไม่สมบูรณ์น้ีมาเป็นไบนารทีรแีบบสมบูรณ์ด้วยการเพ่ิมโหนดใหเ้ต็ม สมบูรณ์น้ีมาเป็นไบนารทีรแีบบสมบูรณ์ด้วยการเพ่ิมโหนดใหเ้ต็ม ((เเป็นไปตามสตูรป็นไปตามสตูร ) ) ซึ่งแสดงได้ดังรูปท่ี ซึ่งแสดงได้ดังรูปท่ี 79.79.
2222วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
รูปท่ี 79 การแปลงไบนารทีรแีบบไมส่มบูรณ์ได้ด้วยการเพิม่โหนดวา่งใหเ้ต็มต้น
AB C
D E
A B C D E(0)
(1)
(2)
(3)
(4)
(5)
(6)
AB C
D E
![Page 23: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/23.jpg)
การแทนโครงสรา้งไบนารทีรใีนหน่วยความจำาแบบลิการแทนโครงสรา้งไบนารทีรใีนหน่วยความจำาแบบลิงก์ลิสต์จะชว่ยแก้ปัญหาการสญูเสยีพื้นท่ีวา่งเปล่า งก์ลิสต์จะชว่ยแก้ปัญหาการสญูเสยีพื้นท่ีวา่งเปล่า ในกรณีของหน่วยความจำาแบบสแตติกของอารเ์รย์ในกรณีของหน่วยความจำาแบบสแตติกของอารเ์รย์ได้ และด้วยลิงก์ลิสต์เป็นหน่วยความจำาแบบไดนามกิได้ และด้วยลิงก์ลิสต์เป็นหน่วยความจำาแบบไดนามกินี้เอง จงึสามารถใชห้น่วยความจำาได้อยา่งคุ้มค่า นี้เอง จงึสามารถใชห้น่วยความจำาได้อยา่งคุ้มค่า โดยแต่ละโหนดจะประกอบด้วยขอ้มูลสำาคัญอยู ่โดยแต่ละโหนดจะประกอบด้วยขอ้มูลสำาคัญอยู ่ 3 3ฟลิด์ คือขอ้มูลท่ีบรรจุอยูใ่นโหนด และพอยน์เตอรท่ี์ฟลิด์ คือขอ้มูลท่ีบรรจุอยูใ่นโหนด และพอยน์เตอรท่ี์ชีไ้ปยงัซบัทรดี้านซา้ย กับพอยน์เตอรท่ี์ชีไ้ปยงัซบัทรีชีไ้ปยงัซบัทรดี้านซา้ย กับพอยน์เตอรท่ี์ชีไ้ปยงัซบัทรีด้านขวา ซึ่งเป็นไปได้ดังรูปท่ี ด้านขวา ซึ่งเป็นไปได้ดังรูปท่ี 710.710.
2323วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
การแทนไบนารทีรีการแทนไบนารทีรีด้วยลิงก์ลิสต์ด้วยลิงก์ลิสต์
![Page 24: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/24.jpg)
2424วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
รูปท่ี 710 ภาพแสดงการแทนไบนารทีรดี้วยลิงก์ลิสต์
A
B C
D E F G
A
B C
D E
![Page 25: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/25.jpg)
การท่องเขา้ไปในไบนารทีร ีก็คือการเดินทางเขา้ไปการท่องเขา้ไปในไบนารทีร ีก็คือการเดินทางเขา้ไปในทร ีซึ่งแต่ละโหนดอยา่งน้อยจะถกูกระทำา ในทร ีซึ่งแต่ละโหนดอยา่งน้อยจะถกูกระทำา 1 1ครัง้ โดยตัวอยา่งการกระทำาเชน่ การค้นหาท่ีจะครัง้ โดยตัวอยา่งการกระทำาเชน่ การค้นหาท่ีจะต้องเดินทางผ่านโหนดแต่ละโหนดตามลำาดับ ต้องเดินทางผ่านโหนดแต่ละโหนดตามลำาดับ เป็นต้น และโดยปกติวธิกีารท่องเขา้ไปในทรจีะมอียู่เป็นต้น และโดยปกติวธิกีารท่องเขา้ไปในทรจีะมอียู่ด้วยกัน ด้วยกัน 2 2 วธิดี้วยกันคือ วธิดี้วยกันคือ 1 1 วธิกีารท่องแบบวธิกีารท่องแบบแนวลึก แนวลึก ((Depth-FirstDepth-First ) ) 2. 2. วธิกีารท่องวธิกีารท่องแบบแนวกวา้ง แบบแนวกวา้ง ((Breadth-FirstBreadth-First ) )
2525วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
การท่องเขา้ไปในไบนารทีร ีการท่องเขา้ไปในไบนารทีร ี((Binary Tree TraversalsBinary Tree Traversals))
![Page 26: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/26.jpg)
เป็นวธิกีารท่องเขา้ไปในทรดี้วยการเดินผ่านเป็นวธิกีารท่องเขา้ไปในทรดี้วยการเดินผ่านจากรูทโหนดลงไปยงัโหนดลกูๆ ซึ่งมทัีง้ฝ่ังจากรูทโหนดลงไปยงัโหนดลกูๆ ซึ่งมทัีง้ฝ่ังด้านซา้ยและด้านขวา ดังนัน้จงึมกีารบญัญัติด้านซา้ยและด้านขวา ดังนัน้จงึมกีารบญัญัติคำายอ่เพื่อใชง้านดังน้ี คำายอ่เพื่อใชง้านดังน้ี N N แทนรูดโหนดแทนรูดโหนด L L แทนซบัทรด้ีานซา้ยแทนซบัทรด้ีานซา้ย R R แทนซบัทรด้ีานขวาแทนซบัทรด้ีานขวา
2626วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
1. 1. วธิกีารท่องแบบแนวลึก วธิกีารท่องแบบแนวลึก ((Depth-First TraversalsDepth-First Traversals))
![Page 27: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/27.jpg)
สำาหรบัวธิกีารท่องแบบแนวลึก จะขอกล่าวเพยีง สำาหรบัวธิกีารท่องแบบแนวลึก จะขอกล่าวเพยีง 3 3วธิกีารมาตรฐานท่ีนิยมใชกั้นอยา่งแพรห่ลาย ซึ่งวธิกีารมาตรฐานท่ีนิยมใชกั้นอยา่งแพรห่ลาย ซึ่งประกอบด้วยวธิ ีประกอบด้วยวธิ ีPreorder, Inorder Preorder, Inorder และ และ PostorderPostorder
2727วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
รูปท่ี 711. การท่องไปยงัทรแีบบแนวลึกด้วยวธิต่ีางๆ
N
RL 2
Leftsubtree
3Righ
tsubtree
1
(a) Preorder traversal
N
RL 1
Leftsubtree
3Righ
tsubtree
2
(C) Inorder traversal
N
RL 1
Leftsubtree
2Righ
tsubtree
3
(C) Postorder traversal
![Page 28: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/28.jpg)
วธิกีารท่องเขา้ไปในทรแีบบ วธิกีารท่องเขา้ไปในทรแีบบ Preorder Preorder จะจะท่องในรูปแบบ ท่องในรูปแบบ NLR NLR คือ จะเริม่ต้นกระทำาท่ีคือ จะเริม่ต้นกระทำาท่ีรูทโหนดก่อนเป็นลำาดับแรก จากนัน้ก็ตามรูทโหนดก่อนเป็นลำาดับแรก จากนัน้ก็ตามด้วยซบัทรด้ีานขวา โดยพจิารณาจากรูปท่ี ด้วยซบัทรด้ีานขวา โดยพจิารณาจากรูปท่ี
712. ( 712. (aa ) ) ท่ีแสดงถึงการท่องเขา้ไปท่ีแสดงถึงการท่องเขา้ไปแบบ แบบ Preorder Preorder และผลลัพธท่ี์ได้ขณะท่ีซูโดและผลลัพธท่ี์ได้ขณะท่ีซูโดโค้ดของการท่องแบบ โค้ดของการท่องแบบ Preorder Preorder แสดงไว้แสดงไว้ในอัลกอรทึิมท่ี ในอัลกอรทึิมท่ี 72.72.
2828วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
แบบพรอีอรเ์ดอร ์แบบพรอีอรเ์ดอร ์((Preorder Preorder Traversal : NLRTraversal : NLR))
![Page 29: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/29.jpg)
2929วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
อักอรทึิมท่ี 72 การท่องไปยงัไบนารทีรแีบบ Preorder
Algorithm PreOrder (root)Traverse a binary tree in node-left-right sequence. Pre root is the entry node of a tree or subtree Post each node has been processed in order1 if (root is not null) 1 process (root) 2 preOrder (leftSubtree) 3 preOrder (rightSubtree)2 end ifend preOrder
![Page 30: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/30.jpg)
วธิกีารท่องเขา้ไปในทรแีบบ วธิกีารท่องเขา้ไปในทรแีบบ Inorder Inorder จะท่องจะท่องในรูปแบบ ในรูปแบบ LNR LNR คือ จะเริม่ต้นกระทำาที่ซบัทรีคือ จะเริม่ต้นกระทำาที่ซบัทรีด้านซา้ยก่อนเป็นลำาดับแรก จากนัน้ก็ตามด้านซา้ยก่อนเป็นลำาดับแรก จากนัน้ก็ตามด้วยรูทโหนด และท้ายสดุก็คือซบัทรดี้านขวา ด้วยรูทโหนด และท้ายสดุก็คือซบัทรดี้านขวา โดยพจิารณาจากรูปท่ี โดยพจิารณาจากรูปท่ี 712. ( 712. (bb ) ) ท่ีท่ีแสดงถึงการท่องเขา้ไปแบบ แสดงถึงการท่องเขา้ไปแบบ Inorder Inorder และและผลลัพธท่ี์ได้ขณะท่ีซูโดโค้ดของการท่องแบบผลลัพธท่ี์ได้ขณะท่ีซูโดโค้ดของการท่องแบบ Inorder Inorder แสดงไวใ้นอัลกอรทึิมท่ี แสดงไวใ้นอัลกอรทึิมท่ี 7373
3030วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
แบบอินออรเ์ดอร ์แบบอินออรเ์ดอร ์((Inorder Inorder Traversal : LNRTraversal : LNR))
![Page 31: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/31.jpg)
3131วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
อักอรทึิมท่ี 73. การท่องไปยงัไบนารทีรแีบบ Inorder
Algorithm inOrder (root)Traverse a jbinary tree in left-node-right sequence. Pre root is the entry node of a tree or subtree Post each node has been processed in order1 if (root is not null) 1 inOrder (leftSubTree) 2 process (root) 3 inOrder (rightSubTree)2 end ifend inOrder
![Page 32: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/32.jpg)
วธิกีารท่องเขา้ไปในทรแีบบ วธิกีารท่องเขา้ไปในทรแีบบ Postorder Postorder จะจะท่องในรูปแบบ ท่องในรูปแบบ LRN LRN คือ จะเริม่ต้นกระทำาท่ีคือ จะเริม่ต้นกระทำาท่ีซบัทรดี้านซา้ยก่อนแล้วตามด้วยซบัทรดี้านซบัทรดี้านซา้ยก่อนแล้วตามด้วยซบัทรดี้านขวา ก่อน จากนัน้จบลงท่ีรูทโหนด โดยขวา ก่อน จากนัน้จบลงท่ีรูทโหนด โดยพจิารณาจากรูปท่ี พจิารณาจากรูปท่ี 712. ( 712. (cc ) ) ท่ีแสดงท่ีแสดงถึงการท่องเขา้ไปแบบ ถึงการท่องเขา้ไปแบบ Postorder Postorder และและผลลัพธท่ี์ได้ขณะท่ีซูโดโค้ดของการท่องแบบผลลัพธท่ี์ได้ขณะท่ีซูโดโค้ดของการท่องแบบ Postorder Postorder แสดงไวใ้นอัลกอรทึิมท่ี แสดงไวใ้นอัลกอรทึิมท่ี 7.7.44
3232วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
แบบโพสต์ออรเ์ดอร ์แบบโพสต์ออรเ์ดอร ์((Postorder Traversal : Postorder Traversal : LRNLRN))
![Page 33: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/33.jpg)
3333วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
อักอรทึิมท่ี 74 การท่องไปยงัไบนารทีรแีบบ Postorder
Algorithm postOrder (root)Traverse a binary tree in left-right-node sequence. Pre root is the entry node of a tree or subtree Post each node has .been processed in order1 if (root is not null) 1 postOrder (leftSubTree) 2 postOrder (rightSubtree) 3 process (root)2 end ifend postOrder
![Page 34: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/34.jpg)
3434วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
รูปท่ี 712. การท่องไปยงัไบนารทีรแีบบ Depth-First ซึ่งประกอบด้วยวธิต่ีางๆ และผลลัพธท่ี์ได้
Preorder order “Walking” order
A
BC D
EF
A
BC D
EF
A B C D E F
(a ) วธิกีารท่องแบบ Preorder
![Page 35: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/35.jpg)
3535วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
รูปท่ี 712. การท่องไปยงัไบนารทีรแีบบ Depth-First ซึ่งประกอบด้วยวธิต่ีางๆ และผลลัพธท่ี์ได้
Inorder order “Walking” order
A
BC D
EF
A
BC D
EF
A BC D EF
(b ) วธิกีารท่องแบบ Inorder
![Page 36: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/36.jpg)
3636วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
รูปท่ี 712. การท่องไปยงัไบนารทีรแีบบ Depth-First ซึ่งประกอบด้วยวธิต่ีางๆ และผลลัพธท่ี์ได้
Postorder order “Walking” order
A
BC D
EF
A
BC D
EF
A BC D
E F
(c ) วธิกีารท่องแบบ Postorder
![Page 37: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/37.jpg)
เป็นวธิกีารท่องเขา้ไปในทรด้ีวยเป็นวธิกีารท่องเขา้ไปในทรด้ีวยการกระทำาทีละระดับจากบนลงล่าง โดยการกระทำาทีละระดับจากบนลงล่าง โดยเริม่ต้นจากรูทโหนด แล้วจงึค่อยเขา้ถึงเริม่ต้นจากรูทโหนด แล้วจงึค่อยเขา้ถึงแต่ละโหนดในแต่ละระดับตามแนวกวา้งแต่ละโหนดในแต่ละระดับตามแนวกวา้งจากซา้ยไปขวา จนกระทัง่ครบทกุระดับ จากซา้ยไปขวา จนกระทัง่ครบทกุระดับ ซึ่งตัวอยา่งการทำางานได้ดังรูปท่ี ซึ่งตัวอยา่งการทำางานได้ดังรูปท่ี 717133
3737วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
2. 2. วธิกีารท่องแบบแนวกวา้ง วธิกีารท่องแบบแนวกวา้ง ((Breadth-First TraversalsBreadth-First Traversals))
![Page 38: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/38.jpg)
3838วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
รูปท่ี 713 การท่องไปยงัไบนารทีรด้ีวยวธิ ีBreadth-First Traversals
Preorder order “Walking” order
A
BC D
BD
A
BC D
BD
B E
A
C D F
![Page 39: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/39.jpg)
สำาหรบัการท่องเขา้ไปในทรดี้วยวธิ ีสำาหรบัการท่องเขา้ไปในทรดี้วยวธิ ี((Depth-Depth-FirstFirst ) ) นัน้จะใชส้แต็ก ซึ่งทราบกันดีแล้ววา่ นัน้จะใชส้แต็ก ซึ่งทราบกันดีแล้ววา่ การเรยีกซำ้าหรอืรเีคอรช์นันัน้จะใชโ้ครงสรา้งการเรยีกซำ้าหรอืรเีคอรช์นันัน้จะใชโ้ครงสรา้งขอ้มูลสแต็กชว่ยในการทำางาน ในขณะท่ีการขอ้มูลสแต็กชว่ยในการทำางาน ในขณะท่ีการท่องไปยงัทรแีบบ ท่องไปยงัทรแีบบ ((Breath-FirstBreath-First ) ) นัน้จะใช้นัน้จะใช้โครงสรา้งคิว โดยซูโดโค้ดสำาหรบัการท่องโครงสรา้งคิว โดยซูโดโค้ดสำาหรบัการท่องเขา้ไปในไบนารทีรดี้วยวธิ ีเขา้ไปในไบนารทีรดี้วยวธิ ีBreath-FirstBreath-First แสดงไวใ้นอัลกอรทึิมท่ี แสดงไวใ้นอัลกอรทึิมท่ี 713713
3939วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
![Page 40: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/40.jpg)
4040วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
อักอรทึิมท่ี 75. การท่องไปยงัไบนารทีรแีบบ Breath-First
Algorithm breadthFirst (root)Process tree using breadth-first traversal, Pre root is node to be processed Post tree has been processed1 set currentNode to root2 createQueue (bfQueue)3 loop (currentNode not null) 1 process (currentNode) 2 if (left subtree not null) 1 enqueue (bfQueue, leftsubtree) 3 end if 4 if (right subtree not null) 1 enqueue (bf Queue, right-Subtree) 5 end if 6 if (not emptyQueue(bfQueue)) 1 set currentNode to dequeue (bfQueue) 7 else 1 set currentNode to null 8 end if4 end loop5 destroyQueue (bfQueue)end breadthFirst
![Page 41: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/41.jpg)
เอ็กซเ์พรสชนัทรคืีอไบนารทีร ีซึ่งการแทนนิพจน์เอ็กซเ์พรสชนัทรคืีอไบนารทีร ีซึ่งการแทนนิพจน์ในเอ็กซเ์พรสชนัทรนีัน้ จะต้องเป็นไปตามในเอ็กซเ์พรสชนัทรนีัน้ จะต้องเป็นไปตามคณุสมบติัดังต่อไปนี้ คณุสมบติัดังต่อไปนี้ 1. 1. ตัวดำาเนินตัวดำาเนินการหรอืโอเปอแรนด์จะเก็บไวใ้นโหนดใบ การหรอืโอเปอแรนด์จะเก็บไวใ้นโหนดใบ ((Leaf Leaf NodeNode ) 2 . ) 2 . ตัวดำาเนินการหรอืโอเปอเรเตอรจ์ะตัวดำาเนินการหรอืโอเปอเรเตอรจ์ะเก็บไวท่ี้รูทโหนดภายใน เก็บไวท่ี้รูทโหนดภายใน ((Internal NodeInternal Node) ) ท่ีท่ีไมใ่ชโ้หนดใบไมใ่ชโ้หนดใบ 3 . 3 . ซบัทร ีในท่ีน้ีคือนิพจน์ซบัทร ีในท่ีน้ีคือนิพจน์ยอ่ย โดยจะมรีูทโหนดเป็นตัวโอเปอเรเตอร์ยอ่ย โดยจะมรีูทโหนดเป็นตัวโอเปอเรเตอร์
4141วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสัรหสั 41222024122202
เอ็กซเ์พรสชนัทร ีเอ็กซเ์พรสชนัทร ี((Expression Expression Tree TraversalsTree Traversals))
![Page 42: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/42.jpg)
จากตัวอยา่งดังรูปท่ี จากตัวอยา่งดังรูปท่ี 714. 714. ซึ่งเป็นนิพจน์ซึ่งเป็นนิพจน์เดียวกัน แต่นำาเสนอทัง้ในรูปแบบของนิพจน์เดียวกัน แต่นำาเสนอทัง้ในรูปแบบของนิพจน์แบบ แบบ Infix Infix และ เอ็กซเ์พรสชนัทรีและ เอ็กซเ์พรสชนัทรี
4242วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
รูปท่ี 714 นิพจน์เดียวกันท่ีนำาเสนอในรูปแบบนิพจน์ Infix และเอ็กซเ์พรสชนัทรี
a
+* a
+b b
a * (b + c) + d
![Page 43: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/43.jpg)
จากหลักความรูเ้ก่ียวกับการท่องไปยงัไบนารทีร ีจากหลักความรูเ้ก่ียวกับการท่องไปยงัไบนารทีร ีด้วยวธิกีารท่องแบบแนวลึกท่ีประกอบไปด้วย ด้วยวธิกีารท่องแบบแนวลึกท่ีประกอบไปด้วย 3 3วธิมีาตรฐานนี้เอง จงึเป็นท่ีมาของการนำาไปประยุกต์วธิมีาตรฐานนี้เอง จงึเป็นท่ีมาของการนำาไปประยุกต์ใชง้านเอ็กซเ์พรสชนัทร ีโดยท่ี ใชง้านเอ็กซเ์พรสชนัทร ีโดยท่ี 1 . 1 .เอ็กซเ์พรสชนัทรแีบบ เอ็กซเ์พรสชนัทรแีบบ InfixInfix จะใชว้ธิกีารท่องเขา้ไปจะใชว้ธิกีารท่องเขา้ไปในทรแีบบ ในทรแีบบ InorderInorder 2. 2. เอ็กซเ์พรสชนัทรแีบบ เอ็กซเ์พรสชนัทรแีบบ PostfixPostfix จะใชว้ธิกีารท่องเขา้ไปในทรแีบบ จะใชว้ธิกีารท่องเขา้ไปในทรแีบบ PostorderPostorder 3. 3. เอ็กซเ์พรสชนัทรแีบบ เอ็กซเ์พรสชนัทรแีบบ PrefixPrefix จะใชว้ธิกีารท่องเขา้ไปในทรแีบบ จะใชว้ธิกีารท่องเขา้ไปในทรแีบบ PreorderPreorder
4343วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสัรหสั 41222024122202
![Page 44: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/44.jpg)
สำาหรบัตัวอยา่งการท่องไปยงัเอ็กซเ์พรสชนัทรแีบบ สำาหรบัตัวอยา่งการท่องไปยงัเอ็กซเ์พรสชนัทรแีบบ Infix Infix ในท่ีนี้จะเขยีนอัลกอรทึิม และทำาการพมิพน์ิพจน์ในท่ีนี้จะเขยีนอัลกอรทึิม และทำาการพมิพน์ิพจน์ออกมาดังรูปท่ี ออกมาดังรูปท่ี 715. 715. เมื่อมกีารท่องเพื่อพมิพ์เมื่อมกีารท่องเพื่อพมิพ์นิพจน์ในรูปแบบ นิพจน์ในรูปแบบ Infix Infix จะต้องเพิม่เครื่องหมายวงเล็บจะต้องเพิม่เครื่องหมายวงเล็บเปิดท่ีจุดเริม่ต้นของแต่ละนิพจน์ และจะปิดด้วยเปิดท่ีจุดเริม่ต้นของแต่ละนิพจน์ และจะปิดด้วยเครื่องหมายวงเล็บปิดท่ีสว่นปลายของนิพจน์นัน้ท่ีได้ก็เครื่องหมายวงเล็บปิดท่ีสว่นปลายของนิพจน์นัน้ท่ีได้ก็คือคือ
สำาหรบัซูโดโค้ดของเอ็กซเ์พรสชนัทร ีสำาหรบัซูโดโค้ดของเอ็กซเ์พรสชนัทร ีInfixInfix แสดงไวใ้นแสดงไวใ้นอัลกอรทึิมที่ อัลกอรทึิมที่ 7676
4444วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
การท่องเขา้ไปในการท่องเขา้ไปในเอ็กซเ์พรสชนัทรแีบบ เอ็กซเ์พรสชนัทรแีบบ InfixInfix
(( a * (b + c) + d)
![Page 45: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/45.jpg)
4545วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
รูปท่ี 715 การท่องแบบ Infix ในเอ็กซเ์พรสชนัทรี
a
+* a
+b b
(( a * (b + c) + d)
( )
)
)(
(
![Page 46: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/46.jpg)
4646วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสัรหสั 41222024122202
อักอรทึิมท่ี 76 การท่องไปยงัในเอ็กซเ์พรสชนัทรีแบบ Infix
Algorithm infix (tree)Print the infix expression for an expression tree. Pre tree is a pointer to an expression tree Post the infix expression has been printed1 if (tree not empty) 1 if (tree token is an operand) 1 print (tree-token) 2 else 1 print (open parenthesis) 2 infix (tree left subtree) 3 print (tree token) 4 infix (tree right subtree) 5 print (close parenthesis) 3 end if2 end ifend infix
![Page 47: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/47.jpg)
การท่องแบบ การท่องแบบ Postfix Postfix ในท่ีเอ็กซเ์พรสชนัทร ีจะใช้ในท่ีเอ็กซเ์พรสชนัทร ีจะใช้หลักการเดียวกับ หลักการเดียวกับ Postorder Postorder ในไบนารทีร ีซึ่งไมม่ีในไบนารทีร ีซึ่งไมม่ีความจำาเป็นต้องใชเ้ครื่องหมายวงเล็บแต่อยา่งใด ความจำาเป็นต้องใชเ้ครื่องหมายวงเล็บแต่อยา่งใด ผลลัพธจ์ากการท่องเขา้ไปในเอ็กซเ์พรสชนัทรดีังผลลัพธจ์ากการท่องเขา้ไปในเอ็กซเ์พรสชนัทรดีังรูปท่ี รูปท่ี 715 715 ก็จะได้นิพจน์ดังนี้ก็จะได้นิพจน์ดังนี้
สำาหรบัซูโดโค้ดของการท่องเขา้ไปในเอ็กซเ์พรสชนัสำาหรบัซูโดโค้ดของการท่องเขา้ไปในเอ็กซเ์พรสชนัทรแีบบ ทรแีบบ PostfixPostfix แสดงไวใ้นอัลกอรทึิมท่ี แสดงไวใ้นอัลกอรทึิมท่ี 77.77.
4747วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
การท่องเขา้ไปในเอ็กซเ์พรสการท่องเขา้ไปในเอ็กซเ์พรสชนัทรแีบบ ชนัทรแีบบ PostfixPostfix
a b c + * d +
![Page 48: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/48.jpg)
4848วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
อักอรทึิมท่ี 77. การท่องไปยงัในเอ็กซเ์พรสชนัทรีแบบ Postfix
Algorithm postfix (tree)Print the postfix expression for an expression tree. Pre tree is a pointer to an egression tree Post the postfix expression has been printed1 if (tree not empty) 1 postfix (tree left subtree) 2 postfix (tree right subtree) 3 print (tree token)2 end ifend postfix
![Page 49: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/49.jpg)
การท่องแบบ การท่องแบบ Prefix Prefix ในท่ีเอ็กซเ์พรสชนัทร ีจะใช้ในท่ีเอ็กซเ์พรสชนัทร ีจะใช้หลักการเดียวกับ หลักการเดียวกับ Preorder Preorder ในไบนารทีร ีซึ่งในไบนารทีร ีซึ่งไมม่คีวามจำาเป็นต้องใชเ้ครื่องหมายวงเล็บแต่ไมม่คีวามจำาเป็นต้องใชเ้ครื่องหมายวงเล็บแต่อยา่งใด ผลลัพธจ์ากการท่องเขา้ไปในเอ็กซเ์พรสอยา่งใด ผลลัพธจ์ากการท่องเขา้ไปในเอ็กซเ์พรสชนัทรดีังรูปท่ี ชนัทรดีังรูปท่ี 715. 715. ก็จะได้นิพจน์ดังนี้ก็จะได้นิพจน์ดังนี้
สำาหรบัซูโดโค้ดของการท่องเขา้ไปในเอ็กซเ์พรสสำาหรบัซูโดโค้ดของการท่องเขา้ไปในเอ็กซเ์พรสชนัทรแีบบ ชนัทรแีบบ PrefixPrefix แสดงไวใ้นอัลกอรทึิมทีแสดงไวใ้นอัลกอรทึิมที่ ่ 7878
4949วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
การท่องเขา้ไปในเอ็กซเ์พรสการท่องเขา้ไปในเอ็กซเ์พรสชนัทรแีบบ ชนัทรแีบบ PrefixPrefix
+ * a + b c d
![Page 50: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/50.jpg)
5050วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222024122202
อักอรทึิมท่ี 78 การท่องไปยงัในเอ็กซเ์พรสชนัทรีแบบ Prefix
Algorithm prefix (tree)Print the prefix expression for an expression tree. Pre tree is a pointer to an expression tree Post the prefix expression has been printed1 if (tree not empty) 1 print (tree token) 2 prefix (tree left subtree) 3 prefix (tree right subtree)2 end ifend prefix
![Page 51: บทที่ 7 ทรี ( Trees ) (ส่วนที่ 1)](https://reader033.vdocuments.mx/reader033/viewer/2022051022/568135ef550346895d9d6233/html5/thumbnails/51.jpg)
The End The End Lesson 7 Lesson 7
(Session 1)(Session 1)
5151วชิาโครงสรา้งขอ้มูล วชิาโครงสรา้งขอ้มูล ((Data Structure) Data Structure) รหสั รหสั 41222014122201