data structure

20
DATA STRUCTURE โโโโโโโโโ โโโโโโ

Upload: marcie

Post on 16-Jan-2016

55 views

Category:

Documents


0 download

DESCRIPTION

โครงสร้างข้อมูล. Data Structure. การค้นหาข่าวสาร (Information Search) การค้นหาข่าวสารแบบซีเควนเชียล (Sequential Search) การค้นหาข่าวสารแบบขจัดครึ่ง ( Binary Search) ตารางที่มีโครงสร้างแบบต้นไม้ การปลิดโหนดจากตารางโครงสร้างต้นไม้ไบนารี. การค้นหาข่าวสาร ( Information Search) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Data  Structure

DATA STRUCTURE

โครงสร�างข้�อมู�ล

Page 2: Data  Structure

การค�นหาข้�าวสาร (Information Search)การค�นหาข้�าวสารแบบซี�เควนเชี�ยล

(Sequential Search)

การค�นหาข้�าวสารแบบข้จั�ดคร��ง (Binary Search)

ตารางที่��มู�โครงสร�างแบบต�นไมู�การปล#ดโหนดจัากตารางโครงสร�างต�นไมู�

ไบนาร�

Page 3: Data  Structure

การค�นหาข้�าวสาร (Information Search)ร�ปแบบข้องข้�อมู�ลข้�าวสารที่��จั�ดเก$บ

อย��ในร�ปแบบตาราง (table), array, link-listอย��ในร�ปแบบตารางที่��มู�โครงสร�างแบบต�นไมู�

การค�นหาข้�อมู�ลข้�&นอย��ก�บล�กษณะการเก$บข้�อมู�ล และอ�ลกอร#ที่�มูที่��ใชี�ได�

ส*าหร�บการจั�ดเก$บข้�อมู�ล แต�ละแบบน�&นกรณ�ข้�อมู�ลอย��บนความูจั*าหล�กที่�&งหมูด การค�นหาจัะเร$ว

หร+อชี�า ข้�&นอย��ก�บจั*านวนคร�&งในการเปร�ยบเที่�ยบ

Page 4: Data  Structure

การค�นหาข้�าวสาร (Information Search)

ล�กษณะข้องข้�าวสารที่��จัะค�นหาข้�อมู�ลที่��จั�ดเก$บ จัะมู�ส�วนที่��เป,นค�ย- (key) และส�วนที่��เป,นเน+&อหาส�วนที่��เป,นเน+&อหาอาจัรวมูอย��ก�บส�วนที่��เป,นค�ย- เร�ยกรวมูว�าเป,น

record

ในบางกรณ�ถ้�า record มู�ข้นาดใหญ่�มูาก อาจัมู�การเก$บค�ย-แยกออกจัาก record แล�วเชี+�อมูหาก�นได�ด�วย pointer

ค�ย-หล�กข้องข้�อมู�ลเราเร�ยกว�า primary key นอกน�&นเร�ยก secondary key

การจั�ดการข้�อมู�ลเราที่*าได�ที่� &ง เพิ่#�มู(insert) แก�ไข้ , ลบออก (delete) ได�

Page 5: Data  Structure

การค�นหาข้�าวสารแบบซี�เควนเชี�ยล (เร�ยงล*าด�บ)การค�นหาจัะเป,นการเที่�ยบค�ย-ไปที่�ละรายการจันพิ่บ

กรณ�ที่��ด�ที่��ส1ด : เปร�ยบเที่�ยบค�ย- 1 คร�&งแล�วพิ่บ (ค�ย-อย��ต�วแรก)กรณ�แย�ที่��ส1ด : เปร�ยบเที่�ยบค�ย- n คร�&งแล�วพิ่บ (ค�ย-อย��ต�วส1ดที่�าย)กรณ�เฉล��ยที่��วไป : เปร�ยบเที่�ยบค�ย- n/2 คร�&ง

ข้�อด�ค+อการเก$บข้�อมู�ลเป,นแบบธรรมูดา ค�ย-ไมู�ต�องเร�ยงล*าด�บ เพิ่#�มู/ลบข้�อมู�ลง�าย

ข้�อเส�ยค+อการค�นหาจัะเป,นไปได�ค�อนข้�างชี�าหากข้�อมู�ลมู�จั*านวนมูาก

Page 6: Data  Structure

การค�นหาข้�าวสารแบบข้จั�ดคร��ง (Binary Search)การค�นหาจัะรวดเร$วข้�&น ค�นหาโดยการแบ�งที่�ละคร��ง

หล�กการค�ย-จัะต�องเร�ยงล*าด�บจัากน�อยไปมูาก (หร+อมูากไปน�อย)การเปร�ยบเที่�ยบโดยการแบ�งคร��งแล�วเที่�ยบว�าอย��คร��งแรก

หร+อคร��งหล�ง

Page 7: Data  Structure

การค�นหาข้�าวสารแบบข้จั�ดคร��งร�ปแบบการค�นหา

k1, k2, …, kmid-1, kmid, kmid+1, …,kn

ถ้�า ki < Kmid ถ้�า ki > kmid

key อย��คร��งแรก key อย��คร��งหล�ง

อ�ลกอร#ที่�มูในการค�นหา

Page 8: Data  Structure

ตารางที่��มู�โครงสร�างแบบต�นไมู�การสร�างตารางมูาจัากแนวความูค#ดแบบต�นไมู�ไบนาร� มู� Lson

และ Rsonค�า k-Lson < k-Node < k-Rson

การค�นหาข้�อมู�ลโดยว#ธ� Binary Search Tree

เป,นการสร�างตารางจัากชี1ดค�ย-ที่��เข้�ามูา โดยให�ต�วแรกเป,นร�ตค�าถ้�ดไปที่��เข้�ามูา หากน�อยกว�าให�อย�� Lsonถ้�ามูากกว�าให�อย�� Rson แต�ถ้�ามู�อย��แล�วก$ให�เที่�ยบถ้�ดต�อไปจัาก Lson หร+อ Rson จันกว�าจัะ

หมูด

Page 9: Data  Structure

Binary Search Tree

หร+อ

โครงสร�างโหนดข้อง Binary Search Tree อาจัอย��ในร�ปแบบค�ย- และเรคคอร-ด หร+อแบบค�ย-ก�บพิ่�อยน-เตอร-ไปหาเรคคอร-ดก$ได�

ด�ต�วอย�างการสร�าง binary search tree

Key Pointer

Lson Rson

Key Record

Lson Rson

Page 10: Data  Structure

การปล#ดโหนด(ลบ ) จัากตารางโครงสร�างต�นไมู�ไบนาร�หล�กการ

ต�องร�กษาความูส�มูพิ่�นธ-ระหว�างโหนดแบบ binary search tree ไว�ได�

โหนด Lson จัะต�องมู�ค�าน�อยกว�า Rsonเมู+�อที่�องต�นไมู�แบบอิ�นอิอิร์�เดอิร์� จัะได�ชี1ดล*าด�บข้องโหนดเร�ยงจัากน�อยไปมูาก

ข้�&นตอนในการปล#ดโหนดปล#ดโหนดที่��เป,นใบ (leaf node)ปลดโหนดที่��มู�ต�นไมู�ย�อยด�านซี�าย หร+อมู�ต�นไมู�ย�อยด�านข้วา

Page 11: Data  Structure

การปล#ดโหนดที่��เป,นโหนดใบ (leaf Node)เราสามูารถ้ปล#ดโหนดที่��เป,นใบได�เลย เพิ่ราะไมู�กระที่บร�ปแบบ

binary search tree เพิ่ราะย�งคงหล�กการที่��ก*าหนดไว�ได�

โหนดที่��เราจัะปล#ดได�โดยไมู�กระที่บหล�กการค+อโหนดที่�� 7, 24 28 42, ,

22

8

5

7

25

24 29

28 42

22

8

5

7

25

24 29

28 42

Page 12: Data  Structure

การปล#ดโหนดที่��มู�ต�นไมู�ย�อยด�านซี�าย หร+อมู�ต�นไมู�ย�อยด�านข้วาข้�&นตอนมู�ด�งน�&

เมู+�อปล#ดโหนดที่#&งไป โหนดที่��จัะมูาแที่นที่��ค+อโหนดที่��เป,นเพิ่+�อนบ�านถ้�ดไป (แบบอ#นออร-เดอร-)

และโหนดที่��อย��ต�อจัากเพิ่+�อนบ�านลงไป จัะกลายเป,น left subtree ข้องโหนดที่��เป,นพิ่�อเด#มูข้องโหนดเพิ่+�อนบ�านน�&

Page 13: Data  Structure

การปล#ดโหนดที่��มู�ต�นไมู�ย�อยด�านซี�ายหร+อมู�ต�นไมู�ย�อยด�านข้วาเร�ยงโหนดแบบอ#นออร-เดอร-ค+อ 7 8 21 22, , , ,

25282942, , ,ต�องการปล#ดโหนด 25เพิ่+�อนบ�านข้องโหนด 25ค+อ

โหนด 2822

8

7

25

21 29

28 42

22

8

7

28

21 29

42ก�อนปล#ด

หล�งปล#ดโหนด 25

Page 14: Data  Structure

การปล#ดโหนดที่��มู�ต�นไมู�ย�อยด�านซี�ายหร+อมู�ต�นไมู�ย�อยด�านข้วา27

15

11

35

24 40

36 45

38

37 39

30

27

15

11

36

24 40

4538

37 39

30

ก�อนปล#ดโหนด 35

หล�งปล#ดโหนด 35

Page 15: Data  Structure

Extended Binary Search Treeในการค�นหาค�ย-ในต�นไมู�ไบนาร� หากเราต�องการร� �ถ้�ง

จั*านวนการเปร�ยบเที่�ยบเพิ่+�อให�ได�ค�าค�ย-ที่��ต�องการ เราจัะต�องก*าหนดจั1ดจับแต�ละโหนดที่��เป,นโหนดใบ หร+อโหนดที่��ไมู�มู� lson/rson

ค*านวณหาระยะที่างเด#นที่�&งส#&นเพิ่+�อจัะบอกจั*านวนคร�&งที่��ต�องเปร�ยบเที่�ยบ ที่�&งในกรณ�ที่��หาเจัอ หร+อหาไมู�เจัอ

ว#ธ�การเพิ่+�อที่��จัะให�ได�ส�ตรด�งข้�างบนเราจัะต�องสร�างส�วนต�อข้องต�นไมู� (extended binary search tree)

Page 16: Data  Structure

Extended Binary Search Tree

27

15

11

35

24 40

36 45

38

37 39

30

เมู+�อเราที่*าการต�อโหนดใบที่1กโหนด และโหนดที่��ข้าด lson หร+อข้าด rson

Page 17: Data  Structure

Extended Binary Search Treeการค*านวณจัะน#ยามู 2ค�าเพิ่+�อมูาใชี�ในส�ตร

ค�า internal path length (i) ค+อผลรวมูข้องความูยาวที่างเด#นจัากร�ตโหนดถ้�งโหนดภายใน (โหนดวงกลมู)Node level No of node Path length Total length

1 (27) 1 0 0

2 (15,35) 2 1 2

3 (11,24,30,40) 4 2 8

4 (36,45) 2 3 6

5 (38) 1 4 4

6 (37,39) 2 5 10

i = 0 + 2 + 8 + 6 + 4 + 10 = 30

Page 18: Data  Structure

Extended Binary Search Treeค�า external path length (e) ค+อผลรวมูข้องความูยาวที่างเด#นจัากร�ตโหนดถ้�งโหนดส��เหล��ยมู

Node level No of node Path length Total length

4 6 3 18

5 3 4 12

7 4 6 24

e = 18 + 12 + 24 = 54

total length = no of node x path length

Page 19: Data  Structure

Extended Binary Search Treeเมู+�อเราต�องการหาค�าค�ย-ใดค�ย-หน��งในต�นไมู�น�& ความูเป,น

ไปได�ในการค�นหาเราจัะได�ว�าCs (found) = i + n

nCf (fail) = e

n + 1i ค+อค�า internal path length รวมูe ค+อค�า external path length รวมูn ค+อจั*านวนโหนดใน binary search tree (โหนดวงกลมู)

Page 20: Data  Structure

Extended Binary Search Tree

27

15

11

35

24 40

36 45

38

37 39

30

i = 30, e = 54, n = 12

ค�าเฉล��ยข้องจั*านวนคร�&งในการค�นหาพิ่บ

Cs = (30+12) / 12 = 3.5

ค�าเฉล��ยข้องจั*านวนคร�&งที่��จัะค�นหาไมู�พิ่บ

Cf = 54 / (12 + 1) = 4.1