The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

004 บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับโครงสร้างข้อมูลnewedit

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by kittisakslaz, 2022-01-11 09:54:08

004 บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับโครงสร้างข้อมูลnewedit

004 บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับโครงสร้างข้อมูลnewedit

บทที่ 1
ความรู้เบ้ืองต้นเกีย่ วกับโครงสร้างขอ้ มลู

ความรูเ้ ก่ียวกับชนดิ ของข้อมูลและโครงสร้างข้อมูลแบบต่างๆ เป็นส่วนที่สำคัญในการทำงาน
ของระบบคอมพวิ เตอร์ ข้อมูลท่ีสามารถนำมาประมวลผลด้วยคอมพิวเตอร์มหี ลากหลายประเภท การนำ
เอาขอ้ มลู ประเภทต่างๆ เขา้ มาจัดการโดยอาศัยคอมพิวเตอร์นน้ั เป็นสง่ิ ทผ่ี ู้พฒั นาโปรแกรมตอ้ งคำนงึ ถึง
ผพู้ ัฒนาโปรแกรมจำเป็นต้องมคี วามรูแ้ ละเข้าใจถึงชนดิ ของขอ้ มูล โครงสรา้ งข้อมูลการแทนท่ีขอ้ มลู ใน
หน่วยความจำของข้อมูลในแต่ละประเภท เป็นต้น จะเห็นได้ว่าในกระบวนการออกแบบโปรแกรม
คอมพิวเตอร์ส่ิงสำคัญอันดับแรกท่ีต้องคำนึงถึงคือ การเลือกโครงสร้างข้อมูล ซ่ึงจากการพัฒนา
ระบบงานใหญ่ๆ ได้แสดงให้เห็นว่า ความยากในการพัฒนาโปรแกรมคอมพิวเตอร์ท่ีมีประสิทธิภาพนั้น
จะขึ้นอยู่กับโครงสร้างข้อมูลที่เลือกใช้ หลังจากตัดสินใจเลือกโครงสร้างข้อมูลที่จะใช้แล้ว ก็มักจะทำให้
ทราบถึงขั้นตอนวิธีที่ต้องใช้กับโครงสร้างข้อมูลน้ันได้ แต่ในบางคร้ังก็อาจจะกลับกันคือ การประมวลผล
ทีส่ ำคัญๆ ของโปรแกรม ได้มกี ารใช้ข้ันตอนวธิ ีท่ีตอ้ งใช้โครงสร้างข้อมูลบางแบบโดยเฉพาะ จงึ จะทำงาน
ได้เต็มประสิทธิภาพ ถึงอย่างไรก็ตามไม่ว่าจะเลือกโครงสร้างข้อมูลด้วยวิธีการใด การใช้โครงสร้างข้อมูล
ที่เหมาะสมก็เป็นสิ่งที่สำคัญมากอยู่ดี แนวความคิดในเรื่องโครงสร้างข้อมูลน้ี ส่งผลกับการพัฒนาวิธีการ
มาตรฐานต่างๆ ในการออกแบบและเขียนโปรแกรมดว้ ยคอมพิวเตอร์ใหม้ ีประสทิ ธิภาพ

1.1 ชนดิ ของข้อมูล
ข้อมูล (Data) เป็นวัตถุดิบพ้ืนฐานในการทำงานของระบบคอมพิวเตอร์ ซึ่งใน

การพฒั นาระบบ
คอมพิวเตอร์ท่มี ีประสทิ ธภิ าพและสามารถตอบสนองการทำงานไดอ้ ยา่ งรวดเร็วนัน้ จะเก่ยี วข้องกบั ขอ้ มลู
ต่างๆ ทน่ี ำมาประมวลผลเปน็ สว่ นใหญ่ ดังนัน้ หากมีระบบการจดั การข้อมลู ทด่ี ีจะชว่ ยให้การทำงานของ
ระบบคอมพิวเตอร์มีความรวดเร็ว ถูกต้องและแม่นยำมากขึ้น ในการเขียนโปรแกรมคอมพิวเตอร์ด้วย
ภาษาระดับสูง (High Level Language) ไม่ว่าจะเป็นภาษาใดจะมีสามารถแบ่งชนิดของข้อมูลที่ใช้ได้
ออกเปน็ 2 ประเภทไดแ้ ก่

1. ชนดิ ขอ้ มลู มาตรฐาน (Standard Data Type) หรือเรียกอกี อย่างหนึง่ ว่า ขอ้ มูลพ้ืนฐาน
(Elementary Data Type) ชนดิ ขอ้ มลู มาตรฐานทน่ี ิยมใชบ้ อ่ ยและนำไปใชใ้ นการเขยี นโปรแกรม
ด้วยภาษาระดับสูงเช่น C, C#, Java, PHP, ASP, JSP ได้แก่ จำนวนเต็ม (Integer), จำนวนจริง (Real)
อักขระ (Character), ตรรกะ (Boolean) เปน็ ต้น

2. ชนิดขอ้ มูลเชิงโครงสรา้ ง (Structured Data Type) เป็นข้อมูลท่ีเกดิ จากข้อมูลพ้ืนฐาน

2

หรือขอ้ มลู เชงิ โครงสร้าง เชน่ อาเรย์ (Array), เซต (Set), ระเบยี น (Record) และแฟม้ ข้อมลู (File)
เปน็ ต้น

1.2 โครงสร้างข้อมูลและการแทนทขี่ อ้ มูล
โครงสร้างข้อมูล (Data Structure) หมายถึง การรวบรวบรวมข้อมูลไว้เป็นชุดของข้อมูล

ทม่ี ีการกำหนดนิยามของความสัมพนั ธภ์ ายในกลุ่มของขอ้ มลู ไว้และโครงสร้างขอ้ มูลต้องสามารถนำมาใช้
เขียนข้ันตอนวิธี (Algorithms) เพ่ือนำมาช่วยจัดการข้อมูลภายในโครงสร้างข้อมูลได้ โครงสร้างข้อมูล
แสดงถงึ ความสัมพนั ธ์ระหว่างขอ้ มลู ซง่ึ ความสมั พันธ์หลกั ใหญ่ๆ มี 4 รูปแบบ ได้แก่

1. โครงสร้างข้อมูลแบบเซต (Set) เป็นโครงสรา้ งทข่ี ้อมูลแตล่ ะตัวไม่มีความสมั พันธ์กนั เลย
2. โครงสร้างแบบเชิงเส้น (Linear) เป็นโครงสร้างท่ีข้อมูลมีความสัมพันธ์แบบหน่ึงต่อหนึ่ง
(One-To-One Relationship) นัน่ คือสามารถระบุถึงข้อมูลตัวถดั ไปของข้อมลู ได้เพยี งตัวเดยี ว
3. โครงสร้างแบบต้นไม้หรือแบบลำดับข้ัน (Tree Or Hierarchical) เป็นโครงสร้างที่ข้อมูลมี
ความสัมพันธ์กันแบบหน่ึงต่อหลาย (One-To-Many Relationship) นั่นคือ ข้อมูลตัวหนึ่งสามารถมี
ความสัมพนั ธก์ บั ขอ้ มลู ในลำดับรองลงไปไดห้ ลายตัว
4. โครงสรา้ งแบบกราฟหรือเครือขา่ ย (Graph or Network) เป็นโครงสรา้ งท่ขี อ้ มูลมีความ
สัมพันธ์กันแบบหลายต่อหลาย (Many-To-Many Relationship) นั่นคือ ข้อมูลตัวหนึ่ง อาจจะมี
ความสมั พนั ธ์กับข้อมูลตัวอื่นๆ กตี่ วั กไ็ ด้
ตวั อยา่ งแผนภาพโครงสรา้ งข้อมลู ท้งั สีแ่ บบไดแ้ สดงในภาพประกอบที่ 1.1

โครงสร้างขอ้ มูลแบบเซต

โครงสรา้ งแบบเชงิ เสน้

โครงสร้างแบบตน้ ไม้หรือแบบลำดบั ขน้ั

โครงสร้างแบบกราฟหรือเครอื ข่าย

ภาพประกอบท่ี 1.1 แผนภาพโครงสรา้ งขอ้ มูล 4 แบบ

3

หมายเหตุ
1. ความสัมพันธ์ในกลุ่มของโครงสร้างข้อมูลแบบเชิงเส้น จะเก่ียวข้องกับฟังก์ชันท่ี

สามารถบอกลำดับกอ่ นหน้า (Pred), ฟังก์ชนั บอกลำดับถัดไป (Succ) และฟังก์ชันบอกอันดบั ของข้อมูล
ทต่ี ้องการ (Ord) ซง่ึ สามารถใช้ได้กบั ข้อมลู ท่มี ีโครงสรา้ งแบบเชิงเส้น

2. โครงสร้างแบบเชิงเส้นแตกต่างจากโครงสร้างแบบอันดับ (Ordered) เม่ือกล่าวถึง
โครงสร้างแบบอันดับจะเกี่ยวข้องกับกลุ่มของเครื่องหมายเปรียบเทยี บ (Relational Operator) เชน่ <,
<=, <>, > ,>= เปน็ ตน้

ตัวอย่างที่ 1.1 เปรียบทำการเทียบโครงสร้างข้อมูลชนิดจำนวนเต็มและจำนวนจริง
ข้อมูลชนิดจำนวนเต็ม มีโครงสร้างทั้งแบบอันดับและแบบเชิงเส้น นั่นคือ สามารถจะ
เปรียบเทียบข้อมูลจำนวนเต็มสองจำนวนได้และสามารถจะบอกอันดับถัดไปหรืออันดับก่อน
หน้า หรืออันดับของข้อมูลที่กำหนดให้ได้ ส่วนข้อมูลชนิดจำนวนจริงมีโครงสร้างแบบอันดับ
อยา่ งเดยี วไม่เป็นแบบเชิงเส้น สามารถจะเปรยี บเทยี บข้อมูลจำนวนจริงสองตวั ได้ แต่ถา้ กำหนด
ข้อมูลจำนวนจริงให้ตัวหนึ่ง จะไม่สามารถบอกได้ว่าข้อมูลจำนวนจริงตัวถัดไปคืออะไร
เน่ืองจากระหว่างจำนวนจริงสองจำนวน จะมีจำนวนจริงซึ่งเป็นจำนวนนับไม่ถ้วนอยู่ระหว่าง
จำนวนจริงสองจำนวนนัน้ เสมอ

ตัวอย่างท่ี 1.2 การแทนโครงสร้างข้อมูลแบบเชิงเส้นในหน่วยความจำ สมมุติมีข้อมูลซ่ึงเป็น
ข้อมลู รายชอื่ ของคนจำนวน 5 คน คอื กมลพรรณ, พรี ภทั ร์, ศิรินภา, ดิเรก, และ อมุ าวดี

โดยรายชื่อเหล่านี้มีความสัมพันธ์กันแบบมีอันดับและแบบเชิงเส้น ดังน้ันจะมีวิธีในการแทนท่ี
ข้อมูลและโครงสร้างของขอ้ มูลนี้ 3 วธิ ี คอื

วิธที ี่ 1 การเข้าถึงข้อมูลแบบลำดบั (Sequential Access) เป็นการจัดเกบ็ ข้อมูลไวใ้ นหน่วย
ความจำทใ่ี ดทห่ี นงึ่ ในลักษณะต่อเนื่องกนั ไปดังแสดงในตารางท่ี 1.1

ตารางท่ี 1.1 การเก็บขอ้ มูลในหนว่ ยความจำในลักษณะต่อเนอ่ื งกัน
หมายเลขประจำตำแหนง่ (Address) ชือ่ (Name)
1000 กมลพรรณ
1008 พรี ภัทร์
1016 ศิรินภา
1024 ดเิ รก
1032 อมุ าวดี

4

จากตารางท่ี 1.1 สมมุติว่าใช้เนื้อที่ 8 ไบต์ในการเก็บช่ือหน่ึงๆ การจัดเก็บแบบน้ียังคงเป็น

โครงสร้างแบบเชิงเส้นอยู่ นั่นคือ ถ้าเราทราบตำแหน่งท่ีอยู่ (Address) ของข้อมูลตัวใด ก็จะสามารถ

คำนวณตำแหน่งท่อี ยู่ของข้อมลู ตัวกอ่ นหนา้ น้ีหรือข้อมลู หลงั จากน้ีได้ทันที

วิธีที่ 2 การเข้าถึงข้อมูลแบบสุ่ม (Random Access) เป็นการเก็บข้อมูลไว้ ณ ตำแหน่งที่อยู่ที่

เป็นฟังก์ชันของอักษรตัวแรกของช่ือ (fl) เช่น 1000+ 8 * [ord(fl) – ord(‘A’)] ซึ่งเป็นวิธีการของ

Hashing Function สมมุติชือ่ ทง้ั 5 ชอ่ื ดังกลา่ ว ถกู จดั เก็บไวใ้ นหน่วยความจำ ดังแสดงในตารางท่ี 1.2

ตารางที่ 1.2 การเกบ็ ข้อมลู ในหน่วยความจำตำแหนง่ ทเ่ี ป็นฟงั ก์ชันของอักษรตัวแรกของช่ือตวั แปร

หมายเลขประจำตำแหน่ง (Address) ชือ่ (Name)

1000 ดเิ รก

1008 -

1016 ศริ นิ ภา

1024 อมุ าวดี

1032 กมลพรรณ

1040 พีรภัทร์

จากตารางท่ี 1.2 วิธีการแทนท่ีข้อมูลในลักษณะแบบนี้ไม่สามารถเก็บโครงสร้างของข้อมูลได้
นั่นคือ ถ้าต้องการทราบว่าใครต่อจากดิเรก จะไม่สามารถบอกได้ การแทนท่ีข้อมูลแบบน้ีจะมีประโยชน์
ตรงที่วา่ ถ้าต้องการค้นหาขอ้ มูลท่ีชื่อ อมุ าวดี ก็สามารถจะทำการคำนวณได้โดยตรง (โดยการใช้อินเวอร์ส
ฟังก์ชันของการจดั เก็บ) ซ่ึงเปน็ การเขา้ ถงึ ขอ้ มูลแบบสุ่ม (Random Access) แตถ่ ้าใช้วิธีการจัดเกบ็ ตามวธิ ี
ที่ 1 ต้องทำการค้นหาจากช่ือแรกไปเรื่อยๆ จนพบชื่อท่ีต้องการ ซ่ึงเป็นการเข้าถึงข้อมูลแบบลำดับ
(Sequential Access) น้นั เอง

วธิ ที ี่ 3 การเกบ็ ข้อมูลไว้ ณ แอดเดรสทเ่ี ปน็ ฟังก์ชันของอักษรตวั แรกของชื่อ (fl) แต่เพิม่ ฟิลด์
สำหรับเกบ็ ตำแหน่งของข้อมูลอันดบั ถัดไปดว้ ย (ซง่ึ เปน็ การรวมข้อดขี องท้งั 2 วธิ เี ข้าดว้ ยกนั ) ดงั แสดงใน
ตารางที่ 1.3

5

ตารางที่ 1.3 เก็บข้อมูลในหน่วยความจำตำแหนง่ ทเี่ ปน็ ฟงั ก์ชนั ของอักษรตัวแรกของชื่อตัวแปร
และเกบ็ ตำแหน่งของขอ้ มูลตัวถดั ไป

หมายเลขประจำตำแหน่ง (Address) ช่ือ (Name) ตำแหนง่ ข้อมูลถัดไป
1000 ดิเรก 1032
1008 -
1016 กมลพรรณ 1008
1024 อมุ าวดี 1016
1032 พีรภทั ร์ 1040
1040 ศริ ินภา 1024

จากตารางที่ 1.3 จะเห็นได้วา่ วธิ ีการเกบ็ ข้อมูลในส่วนความจำแบบน้ี จะทำการเก็บที่อยู่
ของข้อมูลถัดไปด้วยทำให้สามารถเข้าถึงข้อมูลในโครงสร้างได้ ถ้าข้อมูลเริ่มที่ดิเรก ก็สามารถ
ทราบไดว้ ่า
ข้อมูลถัดไปคือ ข้อมูลช่ือใด โดยเก็บข้อมูลเรียงลำดับตามรายชื่อดังน้ี ดิเรก, พีรภัทร์, ศิรินภา, อุมาวดี
และ กมลพรรณ เปน็ ต้น

โดยสรุป จะเห็นว่าในการแทนที่ข้อมูลในหน่วยความจำเพื่อให้คงโครงสร้างแบบเชิงเส้นมี 2 วิธี
คือวิธีท่ี 1 ซึ่งเป็นวิธีการแบบแถวลำดับหรืออาเรย์ (Array) โดยอันดับของข้อมูลแสดงด้วยตำแหน่งของ
ข้อมูลในอาเรย์ และวิธีที่ 3 ซึ่งเป็นวิธีการแบบลิงค์ลิสต์ (Linked List) ซ่ึงอันดับของข้อมูลหาได้โดยการ
ทราบตำแหน่งลิงค์ของข้อมูล โดยชนิดข้อมูลแบบอาเรย์และแบบลิงค์ลิสต์เป็นชนิดข้อมูลพื้นฐานท่ีใช้
สำหรบั สร้างชนิดขอ้ มลู อ่ืนๆ ต่อไป

1.3 การดำเนินการของข้อมูล

ข้อมูลมาตรฐานและการดำเนนิ การของขอ้ มูล

ขอ้ มลู มาตรฐานนนั้ แบง่ ออกเป็น 3 ประเภท คือ

1. ข้อมูลแบบมอี นั ดับ (Ordinal Data Type) ได้แก่ Char, Integer,

Boolean, Enumerated และ Subrange

2. ข้อมลู จำนวนจริง (Real)

3. ขอ้ มูลแบบพอยเตอร์ (Pointer)

ค่าของข้อมลู (Values) ของชนิดขอ้ มูลแบบมอี ันดบั แตล่ ะแบบมีดังนี้

Char ค่าของข้อมูลข้ึนอยู่กบั รหัสทเ่ี ลอื กใช้ เช่น ASCII, EBCDIC, CDC

Integer - maxint ถงึ +maxint

6

Boolean False และ True

Enumerated ข้ึนอยู่กับผูใ้ ชก้ ำหนด

Subrange ขนึ้ อย่กู ับผูใ้ ชก้ ำหนดเปน็ Subrange ของชนิดขอ้ มูลแบบมีอันดบั

ดงั น้ันขอ้ มูลมาตรฐานและการดำเนินการของข้อมูลแต่ละชนิดแสดงดังตารางท่ี 1.4 ถึงตารางท่ี

1.6

ตารางที่ 1.4 ชนดิ ขอ้ มลู แบบมีอันดับ รูปแบบ และการดำเนนิ การ

ชนิดข้อมูล รปู แบบ การดำเนนิ การ (Operations)

Char Relational =, <>, <, >, <=, >=, in

Ordinal functions ord, succ, pred

Textfile I/O read, readln, write, writeln

ตารางท่ี 1.4 ชนดิ ข้อมูลแบบมอี ันดับ รปู แบบ และการดำเนนิ การ(ต่อ)

ชนิดข้อมูล รปู แบบ การดำเนินการ (Operations)

Integer Arithmetic +, -, *, /, div, mod

Relational =, <>, <, >, <=, >=, in

Ordinal functions ord, succ, pred

Arithmetic functions abs, sqr, sqrt, sin, cos, arctan, exp, ln

Textfile I/O read, readln, write, writeln

Boolean Boolean and, or, not

Relational =, <>, <, >, <=, >=, in

Ordinal functions ord, succ, pred

Textfile I/O write, writeln

Enumerated Relational =, <>, <, >, <=, >=, in

Ordinal functions ord, succ, pred

Subrange Relational =, <>, <, >, <=, >=, in

Ordinal functions ord, succ, pred

7

ข้อมูลชนิดข้อมูลจำนวนจริง (Real) ค่าของข้อมูลเป็นค่าจำนวนจริงใดๆ การ
ดำเนินการแสดงได้ตามตารางท่ี 1.5

ตารางท่ี 1.5 ชนดิ ขอ้ มูลจำนวนจรงิ รูปแบบ และการดำเนินการ

ชนดิ ข้อมูล รูปแบบ การดำเนินการ(Operations)
Real
Arithmetic +, -, *, /, div, mod

Relational =, <>, <, >, <=, >=, in

Transfer functions trunc, round

Arithmetic functions abs, sqr, sqrt, sin, cos, arctan, exp, ln

Textfile I/O read, readln, write, writeln

ข้อมลู ชนิดของข้อมูลแบบพอยเตอร์ (Pointer) คา่ ของข้อมูลเป็น Nil หรือ Null คือไม่
มีค่า หรือมีค่าเป็นตำแหน่งที่อยู่ของตัวแปร โครงสร้างของข้อมูล ไม่มีความสัมพันธ์กัน การ
ดำเนนิ การแสดงไดต้ ามตารางท่ี 1.6

ตารางท่ี 1.6 ชนิดข้อมลู แบบพอยน์เตอร์ รปู แบบ และการดำเนินการ

ชนดิ ข้อมลู รูปแบบ การดำเนนิ การ(Operations)

Pointer Relational =, <>

Dynamic allocation new, dispose

ข้อมูลเชิงโครงสรา้ งและการดำเนินการของข้อมลู
ข้อมลู ชนดิ ข้อมลู แบบอาเรย์ (Array) ค่าของขอ้ มลู ทุกตัวที่อยู่ในอาร์เรย์จะต้องเปน็
ขอ้ มลู ชนดิ เดยี วกนั เท่านัน้ เช่น ถ้าเป็นอาร์เรย์ชนดิ จำนวนเต็ม ขอ้ มลู ทุกตัวในอาร์เรยก์ ็ต้องเปน็
ชนดิ จำนวนเตม็
ไม่สามารถเก็บข้อมูลตา่ งชนิดกนั ได้ โครงสร้างของข้อมูลเป็นแบบเชิงเส้นและมีดชั นี (Index) เป็นตัว
กำหนดความสัมพันธ์กับขอ้ มูล ดชั นีตอ้ งมชี นดิ เป็นชนิดขอ้ มูลแบบมีอันดับ การดำเนนิ งาน มี 2 กล่มุ
ได้แก่ การเรยี งลำดับขอ้ มูลและการคน้ หาข้อมูล
ข้อมูลชนิดข้อมูลแบบสตริงค์ (String) ค่าของข้อมูลชนิดตัวอักษรหลายตัวหรือกลุ่ม
ของตัวอกั ษร โดยประกอบดว้ ย ตัวอกั ษร ตัวเลข ตัวอักษรพเิ ศษ ซึ่งเปน็ ชนิดขอ้ มูลที่ใช้บ่อยมาก
ในการเขยี นโปรแกรมมีรูปแบบและการดำเนนิ การแสดงดงั ตารางที่ 1.7

8

ตารางท่ี 1.7 ชนิดข้อมลู แบบสตริงค์ รูปแบบ และการดำเนินการ

ชนิดขอ้ มลู รปู แบบ การดำเนนิ การ(Operations)

String Relational =, <>, <, >, <=, >=, in

Textfile I/O read, readln, write, writeln

ขอ้ มลู ชนิดข้อมูลแบบเรคคอร์ด (Record) คา่ ของข้อมูลน้ันเป็นหนว่ ยของข้อมลู ที่เกิดจากการ

นำเอาฟลิ ดห์ ลายๆ ฟลิ ด์ มารวมกนั เพื่อแสดงรายละเอียดข้อมูลในเร่ืองใดเรื่องหน่งึ เชน่ เรคคอร์ดหน่ึงๆ

ของพนักงานประกอบดว้ ย ฟิลด์ ตา่ งๆ เชน่ รหัสพนักงาน ชือ่ แผนก เงินเดือน เปน็ ต้นการดำเนินการ

มี 2 กลุ่มได้แก่ การเรียงลำดับข้อมูลและการค้นหาข้อมลู

ขอ้ มลู ชนิดข้อมูลแบบเซต (Set) คา่ ของขอ้ มลู น้นั เปน็ หน่วยของข้อมูลท่ไี ม่อนุญาตให้ซ้ำกันแต่

ไมเ่ รียงลำดบั สมาชกิ เซตจงึ ถูกนำมาใช้ในการตรวจสอบความซ้ำกนั ของข้อมลู จะเปน็ คา่ ที่ผใู้ ช้กำหนดซงึ่

ตอ้ งเป็นชนิดแบบมีอันดับ โครงสรา้ งของขอ้ มูลแตล่ ะตวั ไม่มีความสมั พันธ์กนั มกี ารดำเนินการแสดงดงั

ตารางที่ 1.8

ตารางท่ี 1.8 ชนิดขอ้ มลู แบบเซต รูปแบบ และการดำเนินการ

ชนิดขอ้ มูล รูปแบบ การดำเนนิ การ(Operations)

Set Operators * (Intersection), + (Union), -(Complement)

Relational =, <>, <, >, <=, >=, in

ข้อมูลชนิดข้อมูลแบบไฟล์ (File) ค่าของข้อมูลจะเป็นค่าท่ีผู้ใช้กำหนดและจะมีชนิดเป็นอะไร ก็
ได้ แต่ต้องมีชนิดเดียวกัน ซึ่งจะเหมือนกับอาเรย์ ไฟล์ต่างกับอาเรย์ตรงท่ีไฟล์จะมีขนาดเท่าใดก็ได้ แต่
อาเรย์ต้องมีการกำหนดขนาดที่แน่นอน การเข้าถึงข้อมูลแบบไฟล์จะเป็นแบบเข้าถึงตามลำดับ
(Sequential Access) หรือเป็นการเข้าถึงข้อมูลแบบสุ่ม (Random Access) ก็ได้ โครงสร้างของข้อมูล
เปน็ แบบเชงิ เสน้ มีการดำเนินการดงั นี้

File handling rewrite, reset, put, get, write, read, eof
ค่าของข้อมูลชนิดข้อมลู แบบเทก็ ซ์ (Text) คา่ ของข้อมลู เป็น char โครงสร้างของขอ้ มูลเปน็ แบบ
เชงิ เส้น มกี ารดำเนินการดงั น้ี

File handling rewrite, reset, put, get, write, read, eof,
writeln, readln, page, eoln

9

1.4 ประโยชนข์ องโครงสร้างขอ้ มูลและการนำไปใช้
โครงสร้างข้อมูลใช้ในการจดั เก็บข้อมูลเพื่อให้ขอ้ มูลเป็นระบบและใช้สำหรับการจัดเรีย

งข้อมูล
จำนวนมากอย่างถกู วธิ ี โครงสร้างข้อมูลสามารถนำมาใช้ร่วมกบั ขน้ั ตอนวธิ ีเพ่ือใช้สำหรบั ปฏิบัตกิ ารกับ
ข้อมลู ท่ีเก็บในลกั ษณะตา่ งๆ เช่น การเพม่ิ ขอ้ มูล (Insert), การลบข้อมลู (Delete), การคน้ หาขอ้ มลู
(Searching) เป็นตน้ ซ่ึงสามารถชว่ ยใหก้ ระบวนการทำงานภายในระบบคอมพิวเตอร์นน้ั ทำงานได้อยา่ ง
อย่างรวดเรว็ มปี ระสิทธิภาพมากขึ้น

นอกจากนย้ี งั พบว่าโครงสร้างขอ้ มูลในแตล่ ะชนิดนน้ั มีความสามารถในการจดั การข้อมูลที่มี
ความแตกตา่ งกนั ดังน้ันการนำเอาโครงสรา้ งขอ้ มูลมาใช้งานได้อยา่ งมีประสิทธิภาพ ควรคำนึงถงึ ความ
เหมาะสมกบั ลกั ษณะงานด้วย

1.5 สรปุ
โครงสร้างข้อมูล (Data Structure) หมายถึง การรวบรวบรวมข้อมูลไว้เป็นชุดของข้อมูล

ที่มีการกำหนดนิยามของความสัมพันธ์ภายในกลุ่มของข้อมูลไว้และ โครงสร้างข้อมูลต้องสามารถ
นำมาใช้เขียนข้ันตอนวิธี (Algorithms) เพื่อนำมาช่วยจัดการข้อมูลภายในโครงสร้างข้อมูลได้โครงสร้าง
ข้อมูล แสดงถึงความสัมพันธ์ระหว่างข้อมูล ความสัมพันธ์หลักใหญ่ๆ มี 4 แบบ ได้แก่โครงสร้างข้อมูล
แบบเซต (Set) โครงสร้างแบบเชิงเส้น (Linear) โครงสร้างแบบต้นไม้หรือแบบลำดับขั้น (Tree or
Hierarchical) และโครงสรา้ งแบบกราฟหรอื เครอื ข่าย (Graph or Network)

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

1. ชนดิ ขอ้ มูลมาตรฐาน (Standard DataType) หรอื เรียกว่าข้อมลู พ้นื ฐาน
(Elementary Data Type) เป็นหน่วยที่เล็กที่สุดท่ีอธิบายลักษณะข้อมูลได้แก่ จำนวนเต็ม (Integer)
จำนวนจริง (Real) อักขระ (Character) ตรรกะ (Boolean) พอยเตอร์ (Pointer) Enumerated และ
Subrange เป็นตน้

2. ชนดิ ข้อมูลเชิงโครงสรา้ ง (Structured Data Type) เป็นขอ้ มลู ทเ่ี กดิ จากข้อมูลพืน้ ฐาน
หรือข้อมูลเชงิ โครงสร้าง ได้แก่ อาเรย์ (Array, ข้อมลู แบบสตรงิ ค์ (String), เซต (Set), ระเบียน(Record)
และข้อมลู แบบไฟล์ (File) เปน็ ตน้

การท่ีมคี วามรู้ทางดา้ นโครงสร้างขอ้ มลู ท่ีดีและผนวกกับเขา้ ใจข้ันตอนวธิ ีในการแก้ปัญหาจะเป็น
ประโยชน์อย่างมากในเร่ืองของการเขียนโปรแกรมคอมพิวเตอร์ที่มีประสิทธิภาพ และเข้าใจการนำเอา
โครงสรา้ งขอ้ มลู ท่มี ีอยู่แลว้ มาประยกุ ตใ์ ชง้ านรว่ มกนั กบั โปรแกรมคอมพิวเตอร์ที่พฒั นาขน้ึ มาได้

10

คำถามทา้ ยบทที่ 1

1. โครงสรา้ งขอ้ มูล (Data Structure) คืออะไร
2. ชนิดขอ้ มูลมาตรฐานแบ่งออกเป็นกี่ประเภท อะไรบ้าง
3. อธิบายความแตกต่างระหวา่ งชนดิ ขอ้ มูลมาตรฐานและชนิดขอ้ มลู เชิงโครงสรา้ ง
4. ในการเขยี นโปรแกรมภาษาระดบั สงู ไม่ว่าจะเป็นภาษาใดจะมชี นิดของข้อมูลทใ่ี ช้กี่ประเภทได้แก่
อะไรบ้าง
5. จงยกตวั อยา่ งชนิดขอ้ มลู เชิงโครงสรา้ ง (Structured Data Type) มา 2 ชนดิ โดยอธบิ ายลกั ษณะของ
ข้อมลู มาพอสังเขป
6. ชนิดขอ้ มูลแบบอาเรย์ (Array) มคี ุณสมบตั ิอยา่ งไร
7. ยกตวั อย่างค่าของข้อมูลชนดิ ข้อมลู แบบสตรงิ ค์ (String)
8. อธิบายลักษณะสำคญั ของโครงสรา้ งข้อมูลแบบเชิงเสน้ พร้อมยกตวั อย่าง
9. อธิบายลักษณะสำคญั ของโครงสรา้ งข้อมูลแบบไมเ่ ชิงเส้น พรอ้ มยกตวั อย่าง
10. ยกตัวอยา่ งท่แี สดงใหเ้ หน็ ถึงความสำคัญของการศกึ ษาโครงสร้างข้อมลู การนำโครงสรา้ ง
ข้อมูลไปใช้งาน พร้อมอธิบายรายละเอยี ด


Click to View FlipBook Version