19
ออออออออออออ ออออออ

58210401209 1 SS

Embed Size (px)

Citation preview

Page 1: 58210401209 1 SS

อาจารยอสรา ชนตา

Page 2: 58210401209 1 SS

ขอมล คอ ขอเทจจรงทมอยในชวตประจำ�วนเกยวกบบคคล สงของ หรอ เหตก�รณทสนใจศกษ� ขอมลอ�จเปนตวเลข (numeric) หรออ�จเปนตวอกษรหรอขอคว�ม (alphabetic) และขอคว�มทเปนตวเลขผสมขอคว�ม (alphanumeric) นอกจ�ก นขอมลอ�จเปนภ�พ (image) หรอ เสยง(sound) กได

Page 3: 58210401209 1 SS

โครงสร�งขอมล (data structures) เกดจ�กคำ�สองคำ� คอ โครงสร�ง และ ขอมล

โครงสร�ง เปนคว�มสมพนธระหว�งสม�ชกในกลม

โครงสร�งขอมล หม�ยถง คว�มสมพนธระหว�งขอมลทอยในโครงสร�งนน

Page 4: 58210401209 1 SS

ก�รศกษ�โครงสร�งขอมลประเภทต�งๆ จะตองศกษ�สงตอไปน

1. นย�ม (definition) เปนก�รศกษ�คว�มหม�ย คว�มสมพนธ

ระหว�งขอมล และก�รดำ�เนนก�รในโครงสร�งขอมลประเภทนน

2. ก�รนำ�ไปใชจรงในเครองคอมพวเตอร (implement)

Page 5: 58210401209 1 SS

แบงเปน 2 ประเภท คอ โครงสร�งขอมลท�งก�ยภ�พ (physical data

structures) โครงสร�งขอมลท�งตรรกะ (logical data

structures)

Page 6: 58210401209 1 SS

เปนโครงสร�งขอมลทวไปทมใชในภ�ษ�คอมพวเตอร ซงแบงออกเปน 2 ประเภทต�มลกษณะขอมล ดงน

1. ขอมลเบองตน (primitive data types) 2. ขอมลโครงสร�ง (structured data types)

Page 7: 58210401209 1 SS

เปนโครงสรางขอมลทเกดจากจนตนาการของผใชเพอใชแกปญหาในโปรแกรมทสรางขน จำาแนกไดเปน 2 ประเภท ดงน

1. โครงสรางขอมลแบบเชงเสน (linear data structures)

2. โครงสรางขอมลแบบไมใชเชงเสน (non-linear data

structures)

Page 8: 58210401209 1 SS

ขอมลทตองการประมวลผลจะถกนำาไปเกบในหนวยความจำาหลก ดงนนเมอเราตองใชโครงสรางขอมล จงตองมการแทนทขอมลในหนวยความจำาหลกดวย โดยทวไปการเขยนโปรแกรมคอมพวเตอรมการแทนทขอมลในหนวยความจำาหลกอย 2 วธ คอ

1. การแทนทขอมลแบบสแตตก (static memory representation)

2. การแทนทขอมลแบบไดนามก (dynamic memory representation)

Page 9: 58210401209 1 SS

เปนก�รแทนทขอมลทมก�รจองเนอทแบบคงทแนนอน ก�รแทนทแบบนตองมก�รกำ�หนดขน�ดกอนก�รใชง�น

ขอเสย คอไมส�ม�รถปรบขน�ดใหเพมขนหรอลดลงได ไมส�ม�รถเกบขอมลเกนขน�ดเนอททกำ�หนดไว ถ�กำ�หนดขน�ดเนอทไวม�กเกนจำ�เปนทงๆ ทมขอมลอยจำ�นวนนอยจะทำ�ใหสญเสยเนอทโดยเปล�ประโยชน

Page 10: 58210401209 1 SS

เปนก�รแทนทขอมลทไมตองจองเนอทและขน�ดของเนอทกอนก�รใชง�น ส�ม�รถยดหยนไดต�มคว�มตองก�รของผใช ถ�ขอมลมนอยกใชเนอทนอย และถ�ขอมลมม�กกส�ม�รถใชเนอทม�กต�มทใชจรงได นอกจ�กนนสวนเนอทในหนวยคว�มจำ�หลกทไมใชแลวส�ม�รถสงคนเพอกลบม�ใชใหมไดอก

Page 11: 58210401209 1 SS

มขนตอนหลกๆ ดงน 1. นย�มปญห� 2. เขยนอลกอรทม 3. ทดสอบคว�มถกตองของอลกอรทม 4. แปลงอลกอรทมเปนภ�ษ�คอมพวเตอร 5. ตดตงโปรแกรม 6. จดทำ�คมอ

Page 12: 58210401209 1 SS

ขนตอนก�รทำ�ง�นทมลำ�ดบ มคว�มชดเจน ส�ม�รถทำ�ง�นไดจรง และมจดเรมตนและจดสนสดก�รทำ�ง�น

อลกอรทมหนงๆ ส�ม�รถสอออกม�ดวยภ�ษ�ใดๆ กได เชน◦ภ�ษ�พด (Natural Language) เชน ภ�ษ�ไทย องกฤษ

จน ญปน เก�หลฯลฯ ◦ภ�ษ�โปรแกรม (Programming Language) เชน

C/C++, Java ฯลฯ

Page 13: 58210401209 1 SS

เปนโครงสร�งขอมลทประกอบไปดวยสม�ชกซงมรปแบบขอมลเปนแบบเดยวกน เรยงตดตอกนไป และมจำ�นวนสม�ชกแนนอน

ก�รอ�งถงขอมลในหนวยคว�มจำ�จะใช ตวบอกลำ�ดบ “ ”(Subscript) หรอ ดรรชน “ ” (Index)

จำ�นวน ตวบอกลำ�ดบหรอดรรชน จะเรยกว� มต “ ”(Dimension)

โดยทวไปตวบอกลำ�ดบจะเรมตนจ�ก 0 เรยกว� ขอบเขต“ล�ง ” (Lower bound) ตวบอกลำ�ดบสดท�ย เรยกว� ขอบเขตบน “ ” (Upper bound)

Page 14: 58210401209 1 SS

ก�รอ�งอง หรอก�รเข�ถงสม�ชกตวใด จะใชตวบอกลำ�ดบเพยงตวเดยว

โดยทวไปตวบอกลำ�ดบจะเรมตนจ�ก 0 เรยกว� ขอบเขต“ล�ง ” (Lower bound)

ตวบอกลำ�ดบสดท�ย เรยกว� ขอบเขตบน “ ” (Upper bound)

Page 15: 58210401209 1 SS

อ�รเรยหนงมต เปนอ�รเรยชนดโครงสร�งทส�ม�รถจดเกบขอมลชนดเดยวกนเปนกลมหรอชดทเรยงตอกนเปนแถวในหนวยคว�มจำ�โดยใชตวแปรชนดเดยวกน ชอเดยวกน

82 61 43 56 78Score[1] Score[2] Score[3] Score[4] Score[5]

Score

แตละเซลลในอารเรย

Page 16: 58210401209 1 SS

รปแบบ ชนดขอมล ตวแปรอารเรย[ขนาด]; เชน

int num[10]; float area[5];

Page 17: 58210401209 1 SS

อ�รเรยสองมตเปนอ�รเรยทมลกษณะเปนต�ร�ง ประกอบดวย ชองหล�ยชองเรยงกนเปนแถว ในแนวนอน(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

ชออารเร

Page 18: 58210401209 1 SS

รปแบบชออ�รเรย[ดชนกำ�กบแถว(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

Page 19: 58210401209 1 SS

รปแบบ ชนดขอมล ตวแปรอารเรย[ขนาดแถว]

[ขนาดคอลมน]; เชน

int num[2][3]; float area[5][4]; char stdname[5][20];