Upload
thawatchai-martriang
View
25
Download
0
Embed Size (px)
Citation preview
อาจารยอสรา ชนตา
ขอมล คอ ขอเทจจรงทมอยในชวตประจำ�วนเกยวกบบคคล สงของ หรอ เหตก�รณทสนใจศกษ� ขอมลอ�จเปนตวเลข (numeric) หรออ�จเปนตวอกษรหรอขอคว�ม (alphabetic) และขอคว�มทเปนตวเลขผสมขอคว�ม (alphanumeric) นอกจ�ก นขอมลอ�จเปนภ�พ (image) หรอ เสยง(sound) กได
โครงสร�งขอมล (data structures) เกดจ�กคำ�สองคำ� คอ โครงสร�ง และ ขอมล
โครงสร�ง เปนคว�มสมพนธระหว�งสม�ชกในกลม
โครงสร�งขอมล หม�ยถง คว�มสมพนธระหว�งขอมลทอยในโครงสร�งนน
ก�รศกษ�โครงสร�งขอมลประเภทต�งๆ จะตองศกษ�สงตอไปน
1. นย�ม (definition) เปนก�รศกษ�คว�มหม�ย คว�มสมพนธ
ระหว�งขอมล และก�รดำ�เนนก�รในโครงสร�งขอมลประเภทนน
2. ก�รนำ�ไปใชจรงในเครองคอมพวเตอร (implement)
แบงเปน 2 ประเภท คอ โครงสร�งขอมลท�งก�ยภ�พ (physical data
structures) โครงสร�งขอมลท�งตรรกะ (logical data
structures)
เปนโครงสร�งขอมลทวไปทมใชในภ�ษ�คอมพวเตอร ซงแบงออกเปน 2 ประเภทต�มลกษณะขอมล ดงน
1. ขอมลเบองตน (primitive data types) 2. ขอมลโครงสร�ง (structured data types)
เปนโครงสรางขอมลทเกดจากจนตนาการของผใชเพอใชแกปญหาในโปรแกรมทสรางขน จำาแนกไดเปน 2 ประเภท ดงน
1. โครงสรางขอมลแบบเชงเสน (linear data structures)
2. โครงสรางขอมลแบบไมใชเชงเสน (non-linear data
structures)
ขอมลทตองการประมวลผลจะถกนำาไปเกบในหนวยความจำาหลก ดงนนเมอเราตองใชโครงสรางขอมล จงตองมการแทนทขอมลในหนวยความจำาหลกดวย โดยทวไปการเขยนโปรแกรมคอมพวเตอรมการแทนทขอมลในหนวยความจำาหลกอย 2 วธ คอ
1. การแทนทขอมลแบบสแตตก (static memory representation)
2. การแทนทขอมลแบบไดนามก (dynamic memory representation)
เปนก�รแทนทขอมลทมก�รจองเนอทแบบคงทแนนอน ก�รแทนทแบบนตองมก�รกำ�หนดขน�ดกอนก�รใชง�น
ขอเสย คอไมส�ม�รถปรบขน�ดใหเพมขนหรอลดลงได ไมส�ม�รถเกบขอมลเกนขน�ดเนอททกำ�หนดไว ถ�กำ�หนดขน�ดเนอทไวม�กเกนจำ�เปนทงๆ ทมขอมลอยจำ�นวนนอยจะทำ�ใหสญเสยเนอทโดยเปล�ประโยชน
เปนก�รแทนทขอมลทไมตองจองเนอทและขน�ดของเนอทกอนก�รใชง�น ส�ม�รถยดหยนไดต�มคว�มตองก�รของผใช ถ�ขอมลมนอยกใชเนอทนอย และถ�ขอมลมม�กกส�ม�รถใชเนอทม�กต�มทใชจรงได นอกจ�กนนสวนเนอทในหนวยคว�มจำ�หลกทไมใชแลวส�ม�รถสงคนเพอกลบม�ใชใหมไดอก
มขนตอนหลกๆ ดงน 1. นย�มปญห� 2. เขยนอลกอรทม 3. ทดสอบคว�มถกตองของอลกอรทม 4. แปลงอลกอรทมเปนภ�ษ�คอมพวเตอร 5. ตดตงโปรแกรม 6. จดทำ�คมอ
ขนตอนก�รทำ�ง�นทมลำ�ดบ มคว�มชดเจน ส�ม�รถทำ�ง�นไดจรง และมจดเรมตนและจดสนสดก�รทำ�ง�น
อลกอรทมหนงๆ ส�ม�รถสอออกม�ดวยภ�ษ�ใดๆ กได เชน◦ภ�ษ�พด (Natural Language) เชน ภ�ษ�ไทย องกฤษ
จน ญปน เก�หลฯลฯ ◦ภ�ษ�โปรแกรม (Programming Language) เชน
C/C++, Java ฯลฯ
เปนโครงสร�งขอมลทประกอบไปดวยสม�ชกซงมรปแบบขอมลเปนแบบเดยวกน เรยงตดตอกนไป และมจำ�นวนสม�ชกแนนอน
ก�รอ�งถงขอมลในหนวยคว�มจำ�จะใช ตวบอกลำ�ดบ “ ”(Subscript) หรอ ดรรชน “ ” (Index)
จำ�นวน ตวบอกลำ�ดบหรอดรรชน จะเรยกว� มต “ ”(Dimension)
โดยทวไปตวบอกลำ�ดบจะเรมตนจ�ก 0 เรยกว� ขอบเขต“ล�ง ” (Lower bound) ตวบอกลำ�ดบสดท�ย เรยกว� ขอบเขตบน “ ” (Upper bound)
ก�รอ�งอง หรอก�รเข�ถงสม�ชกตวใด จะใชตวบอกลำ�ดบเพยงตวเดยว
โดยทวไปตวบอกลำ�ดบจะเรมตนจ�ก 0 เรยกว� ขอบเขต“ล�ง ” (Lower bound)
ตวบอกลำ�ดบสดท�ย เรยกว� ขอบเขตบน “ ” (Upper bound)
อ�รเรยหนงมต เปนอ�รเรยชนดโครงสร�งทส�ม�รถจดเกบขอมลชนดเดยวกนเปนกลมหรอชดทเรยงตอกนเปนแถวในหนวยคว�มจำ�โดยใชตวแปรชนดเดยวกน ชอเดยวกน
82 61 43 56 78Score[1] Score[2] Score[3] Score[4] Score[5]
Score
แตละเซลลในอารเรย
รปแบบ ชนดขอมล ตวแปรอารเรย[ขนาด]; เชน
int num[10]; float area[5];
อ�รเรยสองมตเปนอ�รเรยทมลกษณะเปนต�ร�ง ประกอบดวย ชองหล�ยชองเรยงกนเปนแถว ในแนวนอน(Row) และในแนวตง(Column)
Lab 1 Lab 2 Lab 3 Lab 4 Lab 5Student 1 82 61 43 56 78Student 2 75 65 55 60 70Student 3 80 75 85 65 75
Score
ชออารเร
ย
รปแบบชออ�รเรย[ดชนกำ�กบแถว(row)][ดชนกำ�กบคอลมน(column)]
ตวอย�ง Score[1][2] ไดแกค� 61Score[3][4] ไดแกค� 65Score[2][5] ไดแกค� 70
Score Lab 1 Lab 2 Lab 3 Lab 4 Lab 5
Student 1 82 61 43 56 78
Student 2 75 65 55 60 70
Student 3 80 75 85 65 75
รปแบบ ชนดขอมล ตวแปรอารเรย[ขนาดแถว]
[ขนาดคอลมน]; เชน
int num[2][3]; float area[5][4]; char stdname[5][20];