สิ่งที่ได้รับ
- ได้เรียนรู้งานจากพี่ๆที่บริษัทเป็นอย่างดี
- ได้ใช้ความรู้ที่เรียนมาใช้ประโยชย์กับบริษัทเป็นอย่างมาก
- ได้เรียนรู้การวางตัวเวลาทำงานว่าควรทำตัวอย่างไง
ORATHAI
วันจันทร์ที่ 28 กุมภาพันธ์ พ.ศ. 2554
สรุปการฝึกงาน สัปดาร์ที่18ที่ 28 กุมภาพันธ์ 2554
งานที่ได้รับมอบหมาย
- เก็บลายละเอียดงานที่ได้ทำได้แก่ บอร์ดแผนผังองค์กร,ป้ายติดรถบริษัท,รูปผลงานในออฟฟิต เป็นต้น
ปัญหา
- กาวที่ติดบอร์ดหลุด
วิธีการแก้ปัญหา
- ทำการติดภาพบนบอร์ดใหม่
- เก็บลายละเอียดงานที่ได้ทำได้แก่ บอร์ดแผนผังองค์กร,ป้ายติดรถบริษัท,รูปผลงานในออฟฟิต เป็นต้น
ปัญหา
- กาวที่ติดบอร์ดหลุด
วิธีการแก้ปัญหา
- ทำการติดภาพบนบอร์ดใหม่
สรุปการฝึกงาน สัปดาร์ที่17 ที่ 21-25 กุมภาพันธ์ 2554
งานที่ได้รับมอบหมาย
- ทำการรับเอกสารไปส่งให้ลูกค้าจำนวน 1 ชุด
- ทำการออกไปพบลูกค้า 1 คน
ปัญหา
- ลืมเอกสารให้ลูกค้า
วิธีการแก้ปัญหา
- ทำการ
- ทำการรับเอกสารไปส่งให้ลูกค้าจำนวน 1 ชุด
- ทำการออกไปพบลูกค้า 1 คน
ปัญหา
- ลืมเอกสารให้ลูกค้า
วิธีการแก้ปัญหา
- ทำการ
สรุปการฝึกงาน สัปดาร์ที่16 ที่ 14-17 กุมภาพันธ์ 2554
งานที่ได้รับมอบหมาย
-ทำการติดตั้งแผ่นภาพผลงานของบริษัทจำนวน 12 แผ่นป้าย
ปัญหา
- ทำการกะระยะกรอบรูปผิด
วิธีการแก้ปัญหา
- ทำการจ่อระยะใหม่และติดตั้งภาพ 12 แผ่น
-ทำการติดตั้งแผ่นภาพผลงานของบริษัทจำนวน 12 แผ่นป้าย
ปัญหา
- ทำการกะระยะกรอบรูปผิด
วิธีการแก้ปัญหา
- ทำการจ่อระยะใหม่และติดตั้งภาพ 12 แผ่น
สรุปการฝึกงาน สัปดาร์ที่15 ที่ 7-11 กุมภาพันธ์ 2554
งานที่ได้รับมอบหมาย
- ทำการออกแบบแผนผังองค์กรใหม่จำนวน 1 บอร์ด
ปัญหา
- รูปผู้บริหารไม่มี
วิธีการแก้ปัญหา
- ทำการถ่ายภาพผู้บริหารใหม่และทำการตัดต่อเพิ่ม
- ทำการออกแบบแผนผังองค์กรใหม่จำนวน 1 บอร์ด
ปัญหา
- รูปผู้บริหารไม่มี
วิธีการแก้ปัญหา
- ทำการถ่ายภาพผู้บริหารใหม่และทำการตัดต่อเพิ่ม
วันพุธที่ 16 กุมภาพันธ์ พ.ศ. 2554
สรุปการฝึกงาน สัปดาร์ที่14 ที่ 31 -4 กุมภาพันธ์ 2554
วันอังคารที่ 8 กุมภาพันธ์ พ.ศ. 2554
สรุปการฝึกงาน สัปดาร์ที่13 ที่ 24 -28 มกราคม 2554
วันอังคารที่ 18 มกราคม พ.ศ. 2554
สรุปการฝึกงาน สัปดาร์ที่11 ที่ 10 -14 มกราคม 2554
วันพุธที่ 5 มกราคม พ.ศ. 2554
วันอังคารที่ 21 ธันวาคม พ.ศ. 2553
วันศุกร์ที่ 17 ธันวาคม พ.ศ. 2553
วันจันทร์ที่ 6 ธันวาคม พ.ศ. 2553
วันอาทิตย์ที่ 28 พฤศจิกายน พ.ศ. 2553
วันอาทิตย์ที่ 21 พฤศจิกายน พ.ศ. 2553
วันศุกร์ที่ 12 พฤศจิกายน พ.ศ. 2553
สรุปการฝึกงาน สัปดาร์ที่2 ที่ 8-12 พฤศจิกายน 2553
ภาพงาน คือ การทำแผนป้ายชื่อของสินค้าต่างๆ ในบริษัทว่ามีชื่ออะไรบ้าง
ภาพงานที่ได้รับมอบหมาย คือ ภาพออกแบบแผนผังองค์กรให้กับบริษัทอันใหม่เพื่อแทนของเดิมที่มีข้อมูลล้าหลัง
ผลงาน คือ การอธิบายคุณลักษณะของมือจับหน้าต่าง
ผลงาน คือ การอธิบายคุณลักษณะของมือจับหน้าต่าง
งานที่ได้รับมอบหมาย
- การทำภาพเพื่ออธิบายการใชังานและคุณสมบัติของเครื่องมือในการทำงานของสินค้าในบริษัทเป็นงานที่แก้ไขและเสร็จสมบูรณ์จากงานสัปดาร์แรก
- การทำแผนผังองค์กรใหม่เพื่อที่จะแทนของเดิมเนื่องจากข้อมูลที่อันเก่ามีอยู่เกิดความล้าหลังไม่อัปเดท
- การทำแผนป้ายเพื่อบอกชื่อของสินค้าในบริษัทที่มีอยู่ในบอร์ดของห้องนำเสนอผลงานให้กับลูกค้า
ปัญหา
- คือการทำงานในแต่ละครั้งต้องใช้เวลาเป็นระยะเวลานานเนื่องจากการทำงานกับเครื่องคอมพิวเตอร์บ้างครั้งก็ต้องเสียเวลาเมื่อเครื่องเกิดเสียรึค้างอยู่บ่อยๆ จึงทำให้เกิดสภาวะหยุดหงิดในการทำงาน
วิธีการแก้ปัญหา
- ต้องบันทึกงานอยู่บ่อยๆ เพื่อจะได้ไม่ให้เกิดปัญหาเวลาเครื่องคอมพิวเตอร์เกิดขัดข้องเป็นต้น
วันจันทร์ที่ 1 พฤศจิกายน พ.ศ. 2553
สรุปการฝึกงาน สัปดาร์ที่1 ที่ 1-5 พฤศจิกายน 2553
งานที่ได้รับมอบหมาย
- งานที่ได้รับมอบหมายจากบริษัท สิงห์คำรณประดิษฐ์ภัณฑ์ จำกัด หน้าที่หลักคือการออกแบบภาพเพื่อเป็นผลงานให้กับทางบริษัท เนื่องจากทางบริษัทยังไม่มีผู้รับผิดชอบงานทางด้านนี้ และนี่คือ ผลงานล่าสุดที่ได้ทำเสร็จในวันนี้
ปัญหา
1. ภาพที่ได้รับจากทางบริษัทส่วนใหญ่ไม่ได้มาตรฐาน เช่น ภาพถ่ายไม่ชัด ภาพถ่ายในมุมที่ไม่สวย เป็นต้น
2. คอมพิวเตอร์บริษัทมีจำนวนน้อยจึงต้องเอาโน็ตบุ๊กของเรามาทำเอง
ประโยชน์ที่ได้รับ
1. ได้แสดงฝีมือในการตัดภาพเพ่ิ่มมากขึ้น
2. ได้รับโอกาสจากทางบริษัทให้ทำงานสิ่งที่ถนัดและยังสอนงานในการใช้เครื่องใช้ในบริษัทเป็นอย่างดีอีก ด้วยเครื่องมือที่ได้ใช้เช่น เครื่องปริ้นเตอร์ เครื่องปริ้นที่ไว้สำหรับปริ้นใบสั่งซื้อต่างๆ เป็นต้น
วันพฤหัสบดีที่ 15 ตุลาคม พ.ศ. 2552
ลูกแรดเตรียมพร้อมล่าเหยื่อ
ในการเรียนเตรียมฝึกที่ผ่านมา ดิฉันได้เรียนรู้การดำเนินชีวิตที่ต้องอยู่ร่วมกับผู้อื่นในสังคมโดยเฉพาะในการทำโครงการทำให้ดิฉันได้รับทัศนคติในการทำงานแบบที่มีแบบแผนมากยิ่งขึ้น และการทำงานร่วมกับคนในกลุ่มนั้นเราจะรู้ว่าใครเป็นอย่างไงมีความสามารถเพียงใดและรู้จักหน้าที่มากแค่ไหนเพิ่มมากขึ้น "ซึ่งการทำงานนั้นจะดีได้เราไม่ควรมองว่าใครเป็นผู้เริ่มงานและใครเป็นผู้ที่ไม่ทำงานและใครเป็นผู้ที่สร้างปัญหาในการทำงาน หากต้องการทำงานให้สำเร็จและผ่านไปได้ด้วยดีแล้ว เราต้องคิดเสมอว่าทุกคนคือผู้ที่ร่วมกันทำงานไม่ต้องแบ่งว่าใครทำมากใครทำน้อยและใครไม่ทำ เพราะหากจะให้งานสำเร็จลุล่วงด้วยดีแล้ว เราคงไม่เลือกคนเหล่านี้เข้ามาร่วมงานกับเราเป็นอันขาด งานจึงจะออกมาได้ดี" นี่คือคำนิยามที่ได้จากการเรียนวิชาเตรียมฝึกประสบการณ์ในครั้งนี้ หากไม่มีวิชานี้และไม่มีอาจารย์ชั้นเยี่ยมค่อยอบรมและสั่งสอนดิฉันคงจะไม่ได้ประสบการณ์ที่มีค่ามากขนาดนี้เป็นแน่
วันอังคารที่ 13 ตุลาคม พ.ศ. 2552
DTS 12 21/09/2009
วันนี้เป็นวันสุดท้ายที่เรียนวิชาโครงสร้างข้อมูล
อาจารย์บอกแนวการออกข้อสอบให้ว่า
ออกตามที่อาจารย์ได้สอนมาออกทั้งหมด
3 เรื่องได้แก่ เรื่องต้นไม้ เรื่องกราฟ เรื่องSorting
แต่เรื่องที่ออกแยกที่สุดจะเป็นเรื่องต้นไม้ และมีข้อเขียน
ทั้งหมด 3 ข้อให้เลือกทำ 2 ข้อเท่านั้นอ่านโจทย์ในการทำให้ดี
อาจารย์บอกแนวการออกข้อสอบให้ว่า
ออกตามที่อาจารย์ได้สอนมาออกทั้งหมด
3 เรื่องได้แก่ เรื่องต้นไม้ เรื่องกราฟ เรื่องSorting
แต่เรื่องที่ออกแยกที่สุดจะเป็นเรื่องต้นไม้ และมีข้อเขียน
ทั้งหมด 3 ข้อให้เลือกทำ 2 ข้อเท่านั้นอ่านโจทย์ในการทำให้ดี
DTS 11 15/09/2009
เรื่องต้นไม้และขึ้นเรื่องกราฟ
การสร้างต้นไม้โดยใช้เวลาที่สั้นที่สุดในการหาแต่ละโหนดของต้นไม้
อาจารย์สอนการหาทางที่สั้นที่สุดให้ดูและบอกวิธีการเรียงน้ำหนักใน
การเชื่อมโยงแต่ละโหนด
ส่วนเรื่องกราฟอาจารย์สอนในเรื่องของการหาค่าจากน้ำหนักที่เร็วที่สุด
ในกราฟ และรอต่ออาทิตย์หน้า
การสร้างต้นไม้โดยใช้เวลาที่สั้นที่สุดในการหาแต่ละโหนดของต้นไม้
อาจารย์สอนการหาทางที่สั้นที่สุดให้ดูและบอกวิธีการเรียงน้ำหนักใน
การเชื่อมโยงแต่ละโหนด
ส่วนเรื่องกราฟอาจารย์สอนในเรื่องของการหาค่าจากน้ำหนักที่เร็วที่สุด
ในกราฟ และรอต่ออาทิตย์หน้า
วันจันทร์ที่ 14 กันยายน พ.ศ. 2552
DTS 10 08/09/2009
สรุปเนื้อหาที่ออกสอบ
- โครงสร้างข้อมูลแบบทรี
- โครงสร้างข้อมูลแบบกราฟ
- การเรียงลำดับข้อมูล
- การค้นหาข้อมูล
ทรี (Tree) เป็นโครงสร้างข้อมูลที่ความสัมพันธ์ระหว่าง โหนดจะมีความสัมพันธ์ลดหลั่นกันเป็นลำดับ
ชั้น (Hierarchical Relationship)ได้มีการนำรูปแบบทรีไปประยุกต์ใช้ในงานต่าง ๆ อย่างแพร่หลาย
ส่วนมากจะใช้สำหรับแสดงความสัมพันธ์ระหว่างข้อมูลเช่น แผนผังองค์ประกอบของหน่วยงานต่าง ๆ
โครงสร้างสารบัญหนังสือ เป็นต้น
1. การท่องไปแบบพรีออร์เดอร์
(Preorder Traversal)
เป็นการเดินเข้าไปเยือนโหนดต่าง ๆ ในทรีด้วยวิธีNLR มีขั้นตอนการเดินดังต่อไปนี้
(1) เยือนโหนดราก
(2) ท่องไปในทรีย่อยทางซ้ายแบบพรีออร์เดอร์
(3) ท่องไปในทรีย่อยทางขวาแบบพรีออร์เดอร์
2.การท่องไปแบบอินออร์เดอร์
(Inorder Traversal)
เป็นการเดินเข้าไปเยือนโหนดต่าง ๆในทรีด้วยวิธี LNRมีขั้นตอนการเดินดังต่อไปนี้
(1) ท่องไปในทรีย่อยทางซ้ายแบบอินออร์เดอร์
(2) เยือนโหนดราก
(3) ท่องไปในทรีย่อยทางขวาแบบอินออร์เดอร์
กราฟที่มีการเปลี่ยนแปลงตลอดเวลา
อาจจะใช้วิธีแอดจาเซนซีลิสต์(Adjacency List) ซึ่งเป็นวิธีที่คล้ายวิธีจัดเก็บกราฟด้วยการเก็บโหนดและ
พอยน์เตอร์ แต่ต่างกันตรงที่ จะใช้ ลิงค์ลิสต์แทนเพื่อความสะดวกในการเปลี่ยนแปลงแก้ไข
การท่องไปในกราฟ
1. การค้นหาแบบกว้าง (Breadth-first Search)
กำหนดจุดเริ่มต้น ถ้าให้เริ่มต้นที่จุด A การค้นหาจะเริ่มต้นที่โหนดประชิดของ A จนครบทุกจำนวนของโหนดประชิด
จากภาพที่ปรากฏต่อไปนี้ โหนด N1 โหนด N2 ไปเรื่อย ๆจนจบที่โหนด Nk การค้นหาแบบกว้างจะค้นหาต่อที่โหนด
ประชิดของ N1 ซึ่งเป็นโหนด ประชิดแรกของโหนด Aแบบแผนการค้นหา จะเป็นแบบเดียวกับโหนด A หลังจากเสร็จ
สิ้นการค้นหาจะดำเนินการค้นหาต่อที่ โหนด N2 จนสุดท้ายจบที่ โหนด Nk ในหารค้นหาแบบกว้างจะใช้คิวเก็บลำดับ
Sorting
- การเรียงลำดับ
- วิธีการเรียงลำดับ
- การเรียงลำดับแบบเลือก (selection sort)
- การเรียงลำดับแบบฟอง (bubble Sort)
- การเรียงลำดับแบบเร็ว (quick sort)
- การเรียงลำดับแบบแทรก (insertion sort)
- การเรียงลำดับแบบฐาน (radix sort)
- โครงสร้างข้อมูลแบบทรี
- โครงสร้างข้อมูลแบบกราฟ
- การเรียงลำดับข้อมูล
- การค้นหาข้อมูล
ทรี (Tree) เป็นโครงสร้างข้อมูลที่ความสัมพันธ์ระหว่าง โหนดจะมีความสัมพันธ์ลดหลั่นกันเป็นลำดับ
ชั้น (Hierarchical Relationship)ได้มีการนำรูปแบบทรีไปประยุกต์ใช้ในงานต่าง ๆ อย่างแพร่หลาย
ส่วนมากจะใช้สำหรับแสดงความสัมพันธ์ระหว่างข้อมูลเช่น แผนผังองค์ประกอบของหน่วยงานต่าง ๆ
โครงสร้างสารบัญหนังสือ เป็นต้น
1. การท่องไปแบบพรีออร์เดอร์
(Preorder Traversal)
เป็นการเดินเข้าไปเยือนโหนดต่าง ๆ ในทรีด้วยวิธีNLR มีขั้นตอนการเดินดังต่อไปนี้
(1) เยือนโหนดราก
(2) ท่องไปในทรีย่อยทางซ้ายแบบพรีออร์เดอร์
(3) ท่องไปในทรีย่อยทางขวาแบบพรีออร์เดอร์
2.การท่องไปแบบอินออร์เดอร์
(Inorder Traversal)
เป็นการเดินเข้าไปเยือนโหนดต่าง ๆในทรีด้วยวิธี LNRมีขั้นตอนการเดินดังต่อไปนี้
(1) ท่องไปในทรีย่อยทางซ้ายแบบอินออร์เดอร์
(2) เยือนโหนดราก
(3) ท่องไปในทรีย่อยทางขวาแบบอินออร์เดอร์
กราฟที่มีการเปลี่ยนแปลงตลอดเวลา
อาจจะใช้วิธีแอดจาเซนซีลิสต์(Adjacency List) ซึ่งเป็นวิธีที่คล้ายวิธีจัดเก็บกราฟด้วยการเก็บโหนดและ
พอยน์เตอร์ แต่ต่างกันตรงที่ จะใช้ ลิงค์ลิสต์แทนเพื่อความสะดวกในการเปลี่ยนแปลงแก้ไข
การท่องไปในกราฟ
1. การค้นหาแบบกว้าง (Breadth-first Search)
กำหนดจุดเริ่มต้น ถ้าให้เริ่มต้นที่จุด A การค้นหาจะเริ่มต้นที่โหนดประชิดของ A จนครบทุกจำนวนของโหนดประชิด
จากภาพที่ปรากฏต่อไปนี้ โหนด N1 โหนด N2 ไปเรื่อย ๆจนจบที่โหนด Nk การค้นหาแบบกว้างจะค้นหาต่อที่โหนด
ประชิดของ N1 ซึ่งเป็นโหนด ประชิดแรกของโหนด Aแบบแผนการค้นหา จะเป็นแบบเดียวกับโหนด A หลังจากเสร็จ
สิ้นการค้นหาจะดำเนินการค้นหาต่อที่ โหนด N2 จนสุดท้ายจบที่ โหนด Nk ในหารค้นหาแบบกว้างจะใช้คิวเก็บลำดับ
Sorting
- การเรียงลำดับ
- วิธีการเรียงลำดับ
- การเรียงลำดับแบบเลือก (selection sort)
- การเรียงลำดับแบบฟอง (bubble Sort)
- การเรียงลำดับแบบเร็ว (quick sort)
- การเรียงลำดับแบบแทรก (insertion sort)
- การเรียงลำดับแบบฐาน (radix sort)
วันเสาร์ที่ 5 กันยายน พ.ศ. 2552
DTS 09-01-09-2009
ต่อเนื่้องจากครั้งที่ DTS 06-25-08-09
6. ระดับของโหนด (Level of Node) คือระยะทางในแนวดิ่งของโหนดนั้น ๆ ที่อยู่ห่างจากโหนด
ราก เมื่อกำหนดให้ โหนดรากของทรีนั้นอยู่ระดับ 1และกิ่งแต่ละกิ่งมีความเท่ากันหมด คือ ยาว
เท่ากับ 1หน่วย ซึ่งระดับของโหนดจะเท่ากับจำนวนกิ่งที่น้อยที่สุดจากโหนดรากไปยังโหนดใด ๆ
บวกด้วย 1และจำนวนเส้นทางตามแนวดิ่งของโหนดใด ๆ ซึ่งห่างจากโหนดราก เรียกว่า ความสูง
(Height) หรือความลึก (Depth)
ไบนารีเซิร์ชทรี
ไบนารีเซิร์ชทรี (Binary Search Tree)เป็นไบนารีทรีที่มีคุณสมบัติที่ว่าทุก ๆ โหนดในทรี
ค่าของโหนดรากมีค่ามากกว่าค่าของทุกโหนดในทรีย่อยทางซ้าย และมีค่าน้อยกว่า
หรือเท่ากับค่าของทุกโหนดในทรีย่อยทางขวาและในแต่ละทรีย่อยก็มี คุณสมบัติเช่นเดียวกัน
กราฟ (Graph)
เป็นโครงสร้างข้อมูลแบบไม่ใช่เชิงเส้น อีกชนิดหนึ่ง กราฟเป็นโครงสร้างข้อมูลที่มีการนำไปใช้ในงาน
ที่เกี่ยวข้องกับการแก้ปัญหาที่ค่อนข้างซับซ้อนเช่น การวางข่าย งานคอมพิวเตอร์ การวิเคราะห์เส้นทาง
วิกฤติ และปัญหาเส้นทางสั้นที่สุด เป็นต้น
นิยามของกราฟ
กราฟ เป็นโครงสร้างข้อมูลแบบไม่ใช่เชิงเส้นที่ประกอบ ด้วยกลุ่มของสิ่งสองสิ่งคือ
(1) โหนด (Nodes) หรือ เวอร์เทกซ์(Vertexes)
(2) เส้นเชื่อมระหว่างโหนด เรียก เอ็จ (Edges)
กราฟที่มีเอ็จเชื่อมระหว่างโหนดสองโหนดถ้าเอ็จไม่มีลำดับ ความสัมพันธ์จะเรียกกราฟนั้นว่า
กราฟแบบไม่มีทิศทาง (Undirected Graphsและถ้ากราฟนั้นมีเอ็จที่มีลำดับ
ความสัมพันธ์หรือมีทิศทางกำกับด้วยเรียกกราฟนั้นว่า กราฟแบบมีทิศทาง(Directed Graphs)
บางครั้งเรียกว่า ไดกราฟ (Digraph)ถ้าต้องการอ้างถึงเอ็จแต่ละเส้นสามารถเขียนชื่อเอ็จกำกับไว้ก็ได้
การเขียนกราฟแสดงโหนดและเส้นเชื่อมความสัมพันธ์ ระหว่างโหนดไม่มีรูปแบบที่ตายตัว
การลากเส้นความสัมพันธ์เป็นเส้นลักษณะไหนก็ได้ที่สามารถแสดงความสัมพันธ์ระหว่างโหนด
ได้ถูกต้อง นอกจากนี้เอ็จจากโหนดใด ๆ สามารถวนเข้าหาตัวมันเองได้
6. ระดับของโหนด (Level of Node) คือระยะทางในแนวดิ่งของโหนดนั้น ๆ ที่อยู่ห่างจากโหนด
ราก เมื่อกำหนดให้ โหนดรากของทรีนั้นอยู่ระดับ 1และกิ่งแต่ละกิ่งมีความเท่ากันหมด คือ ยาว
เท่ากับ 1หน่วย ซึ่งระดับของโหนดจะเท่ากับจำนวนกิ่งที่น้อยที่สุดจากโหนดรากไปยังโหนดใด ๆ
บวกด้วย 1และจำนวนเส้นทางตามแนวดิ่งของโหนดใด ๆ ซึ่งห่างจากโหนดราก เรียกว่า ความสูง
(Height) หรือความลึก (Depth)
ไบนารีเซิร์ชทรี
ไบนารีเซิร์ชทรี (Binary Search Tree)เป็นไบนารีทรีที่มีคุณสมบัติที่ว่าทุก ๆ โหนดในทรี
ค่าของโหนดรากมีค่ามากกว่าค่าของทุกโหนดในทรีย่อยทางซ้าย และมีค่าน้อยกว่า
หรือเท่ากับค่าของทุกโหนดในทรีย่อยทางขวาและในแต่ละทรีย่อยก็มี คุณสมบัติเช่นเดียวกัน
กราฟ (Graph)
เป็นโครงสร้างข้อมูลแบบไม่ใช่เชิงเส้น อีกชนิดหนึ่ง กราฟเป็นโครงสร้างข้อมูลที่มีการนำไปใช้ในงาน
ที่เกี่ยวข้องกับการแก้ปัญหาที่ค่อนข้างซับซ้อนเช่น การวางข่าย งานคอมพิวเตอร์ การวิเคราะห์เส้นทาง
วิกฤติ และปัญหาเส้นทางสั้นที่สุด เป็นต้น
นิยามของกราฟ
กราฟ เป็นโครงสร้างข้อมูลแบบไม่ใช่เชิงเส้นที่ประกอบ ด้วยกลุ่มของสิ่งสองสิ่งคือ
(1) โหนด (Nodes) หรือ เวอร์เทกซ์(Vertexes)
(2) เส้นเชื่อมระหว่างโหนด เรียก เอ็จ (Edges)
กราฟที่มีเอ็จเชื่อมระหว่างโหนดสองโหนดถ้าเอ็จไม่มีลำดับ ความสัมพันธ์จะเรียกกราฟนั้นว่า
กราฟแบบไม่มีทิศทาง (Undirected Graphsและถ้ากราฟนั้นมีเอ็จที่มีลำดับ
ความสัมพันธ์หรือมีทิศทางกำกับด้วยเรียกกราฟนั้นว่า กราฟแบบมีทิศทาง(Directed Graphs)
บางครั้งเรียกว่า ไดกราฟ (Digraph)ถ้าต้องการอ้างถึงเอ็จแต่ละเส้นสามารถเขียนชื่อเอ็จกำกับไว้ก็ได้
การเขียนกราฟแสดงโหนดและเส้นเชื่อมความสัมพันธ์ ระหว่างโหนดไม่มีรูปแบบที่ตายตัว
การลากเส้นความสัมพันธ์เป็นเส้นลักษณะไหนก็ได้ที่สามารถแสดงความสัมพันธ์ระหว่างโหนด
ได้ถูกต้อง นอกจากนี้เอ็จจากโหนดใด ๆ สามารถวนเข้าหาตัวมันเองได้
DST 08-25-08-2009
เรื่อง Tree
ทรี (Tree) เป็นโครงสร้างข้อมูลที่ความสัมพันธ์ระหว่าง โหนดจะมีความสัมพันธ์ลดหลั่นกันเป็นลำดับ
ชั้น (Hierarchical Relationship)ได้มีการนำรูปแบบทรีไปประยุกต์ใช้ในงานต่าง ๆ อย่างแพร่หลาย
ส่วนมากจะใช้สำหรับแสดงความสัมพันธ์ระหว่างข้อมูลเช่น แผนผังองค์ประกอบของหน่วยงานต่าง ๆ
โครงสร้างสารบัญหนังสือ เป็นต้นแต่ละโหนดจะมีความสัมพันธ์กับโหนดในระดับที่ต่ำลงมา หนึ่งระดับ
ได้หลาย ๆ โหนดเรียกโหนดดังกล่าวว่า โหนดแม่ (Parent or Mother Node)โหนดที่อยู่ต่ำกว่า
โหนดแม่อยู่หนึ่งระดับเรียกว่า โหนดลูก (Child or Son Node)โหนดที่อยู่ในระดับสูงสุดและไม่มีโหนด
แม่เรียกว่า โหนดราก (Root Node)นดที่มีโหนดแม่เป็นโหนดเดียวกันเรียกว่า โหนดพี่น้อง (Siblings)
โหนดที่ไม่มีโหนดลูก เรียกว่าโหนดใบ (Leave Node)เส้นเชื่อมแสดงความสัมพันธ์ระหว่าง
โหนดสองโหนดเรียกว่า กิ่ง (Branch)
นิยามของทรี
1. นิยามทรีด้วยนิยามของกราฟทรี คือ กราฟที่ต่อเนื่องโดยไม่มีวงจรปิด (loop) ในโครงสร้าง โหนดสอง
โหนดใด ๆ ในทรีต้องมีทางติดต่อกันทางเดียวเท่านั้น และทรีที่มี N โหนด ต้องมีกิ่งทั้งหมด N-1 เส้น
การเขียนรูปแบบทรี อาจเขียนได้ 4
2. นิยามทรีด้วยรูปแบบรีเคอร์ซีฟทรีประกอบด้วยสมาชิกที่เรียกว่าโหนด โดยที่ ถ้าว่าง ไม่มีโหนดใด ๆ เรียกว่านัลทรี (Null Tree) และถ้ามีโหนดหนึ่งเป็นโหนดราก ส่วนที่เหลือจะแบ่งเป็นทรีย่อย (Sub Tree)T1, T2, T3,…,Tkโดยที่ k>=0 และทรีย่อยต้องมีคุณสมบัติเป็นทรี
นิยามที่เกี่ยวข้องกับทรี
1. ฟอร์เรสต์ (Forest)
หมายถึง กลุ่มของทรีที่เกิดจากการเอาโหนดรากของทรีออกหรือ เซตของทรีที่แยกจากกัน
2. ทรีที่มีแบบแผน (Ordered Tree)
หมายถึง ทรีที่โหนดต่าง ๆ ในทรีนั้นมีความสัมพันธ์ที่แน่นอน เช่น ไปทางขวาไปทางซ้าย เป็นต้น
3. ทรีคล้าย (Similar Tree) คือ
ทรีที่มีโครงสร้างเหมือนกัน หรือทรีที่มีรูปร่างของทรีเหมือนกัน โดยไม่คำนึงถึงข้อมูลที่อยู่ในแต่ละโหนด
4. ทรีเหมือน (Equivalent Tree) คือ
ทรีที่เหมือนกันโดยสมบูรณ์ โดยต้องเป็นทรีที่คล้ายกันและแต่ละโหนดในตำแหน่งเดียวกันมีข้อมูลเหมือนกัน
5. กำลัง (Degree) หมายถึงจำนวนทรีย่อยของโหนด นั้น ๆ
6. ระดับของโหนด (Level of Node) คือระยะทางในแนวดิ่งของโหนดนั้น ๆ ที่อยู่ห่างจากโหนด
ราก เมื่อกำหนดให้ โหนดรากของทรีนั้นอยู่ระดับ 1และกิ่งแต่ละกิ่งมีความเท่ากันหมด คือ ยาวเท่ากับ 1หน่วย
ซึ่งระดับของโหนดจะเท่ากับจำนวนกิ่งที่น้อยที่สุดจากโหนดรากไปยังโหนดใด ๆ บวกด้วย 1และจำนวนเส้นทางตามแนวดิ่งของโหนดใด ๆ ซึ่งห่างจากโหนดราก เรียกว่า ความสูง (Height) หรือความลึก (Depth)
ทรี (Tree) เป็นโครงสร้างข้อมูลที่ความสัมพันธ์ระหว่าง โหนดจะมีความสัมพันธ์ลดหลั่นกันเป็นลำดับ
ชั้น (Hierarchical Relationship)ได้มีการนำรูปแบบทรีไปประยุกต์ใช้ในงานต่าง ๆ อย่างแพร่หลาย
ส่วนมากจะใช้สำหรับแสดงความสัมพันธ์ระหว่างข้อมูลเช่น แผนผังองค์ประกอบของหน่วยงานต่าง ๆ
โครงสร้างสารบัญหนังสือ เป็นต้นแต่ละโหนดจะมีความสัมพันธ์กับโหนดในระดับที่ต่ำลงมา หนึ่งระดับ
ได้หลาย ๆ โหนดเรียกโหนดดังกล่าวว่า โหนดแม่ (Parent or Mother Node)โหนดที่อยู่ต่ำกว่า
โหนดแม่อยู่หนึ่งระดับเรียกว่า โหนดลูก (Child or Son Node)โหนดที่อยู่ในระดับสูงสุดและไม่มีโหนด
แม่เรียกว่า โหนดราก (Root Node)นดที่มีโหนดแม่เป็นโหนดเดียวกันเรียกว่า โหนดพี่น้อง (Siblings)
โหนดที่ไม่มีโหนดลูก เรียกว่าโหนดใบ (Leave Node)เส้นเชื่อมแสดงความสัมพันธ์ระหว่าง
โหนดสองโหนดเรียกว่า กิ่ง (Branch)
นิยามของทรี
1. นิยามทรีด้วยนิยามของกราฟทรี คือ กราฟที่ต่อเนื่องโดยไม่มีวงจรปิด (loop) ในโครงสร้าง โหนดสอง
โหนดใด ๆ ในทรีต้องมีทางติดต่อกันทางเดียวเท่านั้น และทรีที่มี N โหนด ต้องมีกิ่งทั้งหมด N-1 เส้น
การเขียนรูปแบบทรี อาจเขียนได้ 4
2. นิยามทรีด้วยรูปแบบรีเคอร์ซีฟทรีประกอบด้วยสมาชิกที่เรียกว่าโหนด โดยที่ ถ้าว่าง ไม่มีโหนดใด ๆ เรียกว่านัลทรี (Null Tree) และถ้ามีโหนดหนึ่งเป็นโหนดราก ส่วนที่เหลือจะแบ่งเป็นทรีย่อย (Sub Tree)T1, T2, T3,…,Tkโดยที่ k>=0 และทรีย่อยต้องมีคุณสมบัติเป็นทรี
นิยามที่เกี่ยวข้องกับทรี
1. ฟอร์เรสต์ (Forest)
หมายถึง กลุ่มของทรีที่เกิดจากการเอาโหนดรากของทรีออกหรือ เซตของทรีที่แยกจากกัน
2. ทรีที่มีแบบแผน (Ordered Tree)
หมายถึง ทรีที่โหนดต่าง ๆ ในทรีนั้นมีความสัมพันธ์ที่แน่นอน เช่น ไปทางขวาไปทางซ้าย เป็นต้น
3. ทรีคล้าย (Similar Tree) คือ
ทรีที่มีโครงสร้างเหมือนกัน หรือทรีที่มีรูปร่างของทรีเหมือนกัน โดยไม่คำนึงถึงข้อมูลที่อยู่ในแต่ละโหนด
4. ทรีเหมือน (Equivalent Tree) คือ
ทรีที่เหมือนกันโดยสมบูรณ์ โดยต้องเป็นทรีที่คล้ายกันและแต่ละโหนดในตำแหน่งเดียวกันมีข้อมูลเหมือนกัน
5. กำลัง (Degree) หมายถึงจำนวนทรีย่อยของโหนด นั้น ๆ
6. ระดับของโหนด (Level of Node) คือระยะทางในแนวดิ่งของโหนดนั้น ๆ ที่อยู่ห่างจากโหนด
ราก เมื่อกำหนดให้ โหนดรากของทรีนั้นอยู่ระดับ 1และกิ่งแต่ละกิ่งมีความเท่ากันหมด คือ ยาวเท่ากับ 1หน่วย
ซึ่งระดับของโหนดจะเท่ากับจำนวนกิ่งที่น้อยที่สุดจากโหนดรากไปยังโหนดใด ๆ บวกด้วย 1และจำนวนเส้นทางตามแนวดิ่งของโหนดใด ๆ ซึ่งห่างจากโหนดราก เรียกว่า ความสูง (Height) หรือความลึก (Depth)
วันเสาร์ที่ 15 สิงหาคม พ.ศ. 2552
DTS 07 11/08/2009
สรุปบทเรียน
วันนี้อาจารย์ให้ส่งสมุดจดการบ้านและส่งงานที่ส่งให้ทำงานกลุ่ม
อาจารย์ให้ไปอ่านเรื่องคิวเองเพราะนักศึกษาเสียงดังไม่มีมารยาท
และเอาiostream
#include
#include
using namespace std;
int main()
{
char FirstName[30], LastName[30];
int Age;
char FileName[20];
/*
cout << "Enter First Name: ";
cin >> FirstName;
cout << "Enter Last Name: ";
cin >> LastName;
cout << "Enter Age: ";
cin >> Age;
cout << "\nEnter the name of the file you want to create: ";
cin >> FileName;
ofstream Students(FileName, ios::out);
Students << FirstName << "\n" << LastName << "\n" << Age;
*/
cout << "Enter the name of the file you want to open: ";
cin >> FileName;
ifstream Students(FileName);
Students >> FirstName >> LastName >> Age;
cout << "\nFirst Name: " << FirstName;
cout << "\nLast Name: " << LastName;
cout << "\nEnter Age: " << Age;
cout << "\n\n";
return 0;
}
วันนี้อาจารย์ให้ส่งสมุดจดการบ้านและส่งงานที่ส่งให้ทำงานกลุ่ม
อาจารย์ให้ไปอ่านเรื่องคิวเองเพราะนักศึกษาเสียงดังไม่มีมารยาท
และเอาiostream
#include
#include
using namespace std;
int main()
{
char FirstName[30], LastName[30];
int Age;
char FileName[20];
/*
cout << "Enter First Name: ";
cin >> FirstName;
cout << "Enter Last Name: ";
cin >> LastName;
cout << "Enter Age: ";
cin >> Age;
cout << "\nEnter the name of the file you want to create: ";
cin >> FileName;
ofstream Students(FileName, ios::out);
Students << FirstName << "\n" << LastName << "\n" << Age;
*/
cout << "Enter the name of the file you want to open: ";
cin >> FileName;
ifstream Students(FileName);
Students >> FirstName >> LastName >> Age;
cout << "\nFirst Name: " << FirstName;
cout << "\nLast Name: " << LastName;
cout << "\nEnter Age: " << Age;
cout << "\n\n";
return 0;
}
วันอาทิตย์ที่ 9 สิงหาคม พ.ศ. 2552
DTS 06 4/08/2009
เรื่อง Stack
- โครงสร้างข้อมูลแบบสแตก
- การดำเนินงานพื้นฐานของสแตก
- การแทนที่ข้อมูลของสแตก
- การประยุกต์ใช้สแตก
เรื่อง Stack
สแตก (Stack) เป็นโครงสร้างข้อมูลที่
ข้อมูลแบบลิเนียร์ลิสต์ ที่มีคุณสมบัติที่ว่า การ
เพิ่มหรือลบข้อมูลในสแตก จะกระทำที่ ปลาย
ข้างเดียวกัน ซึ่งเรียกว่า Top ของสแตก (Top
Of Stack) และ ลักษณะที่สำคัญของสแตก
คือ ข้อมูลที่ใส่หลังสุดจะถูกนำออกมา จากส
แตกเป็นลำดับแรกสุด เรียกคุณสมบัตินี้ว่า
LIFO (Last In First Out)
การทำงานต่าง ๆ ของสแตกจะกระทำที่ปลาย
ข้างหนึ่งของ สแตกเท่านั้น ดังนั้นจะต้องมีตัวชี้
ตำแหน่งข้อมูลบนสุดของสแตกด้วย
การทำงานของสแตกจะประกอบด้วย
กระบวนการ 3 กระบวน
การที่สำคัญ คือ
1.Push คือ การนำข้อมูลใส่ลงไปในสแตก
2. Pop คือ การนำข้อมูลออกจากส่วนบนสุด ของสแตก
3. Top คือ การนำข้อมูลออกจากส่วนลงสุด ของสแตก
- โครงสร้างข้อมูลแบบสแตก
- การดำเนินงานพื้นฐานของสแตก
- การแทนที่ข้อมูลของสแตก
- การประยุกต์ใช้สแตก
เรื่อง Stack
สแตก (Stack) เป็นโครงสร้างข้อมูลที่
ข้อมูลแบบลิเนียร์ลิสต์ ที่มีคุณสมบัติที่ว่า การ
เพิ่มหรือลบข้อมูลในสแตก จะกระทำที่ ปลาย
ข้างเดียวกัน ซึ่งเรียกว่า Top ของสแตก (Top
Of Stack) และ ลักษณะที่สำคัญของสแตก
คือ ข้อมูลที่ใส่หลังสุดจะถูกนำออกมา จากส
แตกเป็นลำดับแรกสุด เรียกคุณสมบัตินี้ว่า
LIFO (Last In First Out)
การทำงานต่าง ๆ ของสแตกจะกระทำที่ปลาย
ข้างหนึ่งของ สแตกเท่านั้น ดังนั้นจะต้องมีตัวชี้
ตำแหน่งข้อมูลบนสุดของสแตกด้วย
การทำงานของสแตกจะประกอบด้วย
กระบวนการ 3 กระบวน
การที่สำคัญ คือ
1.Push คือ การนำข้อมูลใส่ลงไปในสแตก
2. Pop คือ การนำข้อมูลออกจากส่วนบนสุด ของสแตก
3. Top คือ การนำข้อมูลออกจากส่วนลงสุด ของสแตก
วันอาทิตย์ที่ 2 สิงหาคม พ.ศ. 2552
DTS 05 3/08/2009
Linked List
- โครงสร้างข้อมูลแบบลิงค์ลิสต์
- กระบวนงานและฟังก์ชั่นที่ใช้ดำเนินงานพื้นฐาน
- การสร้างลิงค์ลิสต์
- ลิงค์ลิสต์แบบซับซ้อน
ลิงค์ลิสต์ (Linked List)
- โครงสร้างข้อมูลแบบลิงค์ลิสต์
- กระบวนงานและฟังก์ชั่นที่ใช้ดำเนินงานพื้นฐาน
- การสร้างลิงค์ลิสต์
- ลิงค์ลิสต์แบบซับซ้อน
ลิงค์ลิสต์ (Linked List)
เป็นวิธีการเก็บข้อมูลอย่างต่อเนื่องของอิลิเมนต์ต่าง ๆ โดยมี
พอยเตอร์เป็นตัวเชื่อมต่อต่ละอิลิเมนท์ เรียกว่าโนด (Node) ซึ่ง
ในแต่ละโนดจะประกอบไปด้วย 2 ส่วน คือ
Data จะเก็บข้อมูลของอิลิเมนท์ และ
ส่วนที่สอง คือ Link Field จะทำหน้าที่เก็บ
ตำแหน่งของโนดต่อไปในลิสต์
โครงสร้างข้อมูลแบบลิงค์ลิสต์
โครงสร้างข้อมูลแบบลิงค์ลิสต์จะแบ่งเป็น 2 ส่วน คือ
1. Head Structure จะประกอบไปด้วย 3 ส่วน
ได้แก่ จำนวนโหนดในลิสต์ (Count) พอยเตอร์ที่ชี้ไปยัง
โหนดที่เข้าถึง (Pos) และพอยเตอร์ที่ชี้ไปยังโหนดข้อมูล
แรกของลิสต์ (Head)
2. Data Node Structure จะประกอบไปด้วยข้อมูล
(Data) และพอยเตอร์ที่ชี้ไปยังข้อมูลตัวถัดไปป
พอยเตอร์เป็นตัวเชื่อมต่อต่ละอิลิเมนท์ เรียกว่าโนด (Node) ซึ่ง
ในแต่ละโนดจะประกอบไปด้วย 2 ส่วน คือ
Data จะเก็บข้อมูลของอิลิเมนท์ และ
ส่วนที่สอง คือ Link Field จะทำหน้าที่เก็บ
ตำแหน่งของโนดต่อไปในลิสต์
โครงสร้างข้อมูลแบบลิงค์ลิสต์
โครงสร้างข้อมูลแบบลิงค์ลิสต์จะแบ่งเป็น 2 ส่วน คือ
1. Head Structure จะประกอบไปด้วย 3 ส่วน
ได้แก่ จำนวนโหนดในลิสต์ (Count) พอยเตอร์ที่ชี้ไปยัง
โหนดที่เข้าถึง (Pos) และพอยเตอร์ที่ชี้ไปยังโหนดข้อมูล
แรกของลิสต์ (Head)
2. Data Node Structure จะประกอบไปด้วยข้อมูล
(Data) และพอยเตอร์ที่ชี้ไปยังข้อมูลตัวถัดไปป
วันพุธที่ 15 กรกฎาคม พ.ศ. 2552
DTS ครั้งที่ 04-14/07/2009
โครงสร้างข้อมูลแบบเซ็ตโครงสร้างข้อมูลแบบสตริง
สตริง (String)
หรือ สตริงของอักขระ (Character String) เป็นข้อมูลที่ประกอบไปด้วย ตัวอักษร ตัวเลขหรือเครื่องหมายเรียงติดต่อกันไป รวมทั้งช่องว่างการประยุกต์ใช้คอมพิวเตอร์ที่เกี่ยวกับข้อมูลที่เป็นสตริง
มีการนำไปใช้สร้างโปรแกรมประเภทบรรณาธิการข้อความ(text editor) หรือโปรแกรมประเภทประมวลผลคำ (word processing) ซึ่งมีการทำงานที่อำนวยความสะดวกหลายอย่าง เช่น การตรวจสอบข้อความ การจัดแนวข้อความในแต่ละย่อหน้า และการค้นหาคำ เป็นต้นความยาวของสตริง จะถูกกำหนดโดย
ขนาดของสตริง การกำหนดขนาดของสตริงนั้นต้องจองเนื้อที่ในหน่วยความจำให้กับ \0ด้วย
เช่น
“This is String !”
จะเป็นข้อมูลแบบสตริงยาว 16 อักขระ
ฟังก์ชัน gets( )
เป็นฟังก์ชันที่อ่านค่าจากแป้นพิมพ์มาเก็บไว้ในหน่วยความจำ ซึ่งก็คืออะเรย์ที่ตัวแปร name ชี้อยู่ รวมทั้งช่องว่าง จนกว่าผู้ใช้จะกดEnter จะเติม null character ให้หากใช้ scanf( ) จะถือว่า Jame เป็นค่าหนึ่งและ Smith เป็นอีกค่าหนึ่ง เพราะมีช่องว่างคั่น และไม่เติม null character นั่นคือจะได้อะเรย์ที่มีค่าเป็น Jame ไม่ใช่ String ที่มีค่าเป็น
Jame Smith
วันอังคารที่ 30 มิถุนายน พ.ศ. 2552
DTS ครั้งที่ 03-30/06/2009
สรุปสาระการเรียนรู้ครั้งที่ 2
เรื่องแถวลำดับและระเบียนข้อมูล
-การดำเนินการเปรแกรม และฟังก์ชัน
-การดำเนินการที่เกี่ยวข้องกับ เรคคอร์ด
-ความสัมพันธ์ระหว่าง เรคคอร์ด กับอะเรย์ และอะเรย์เ
ชนิดโครงสร้าง
Phorramatpanyaprat T. : Data Structure 3
จุดประสงค์การเรียนรู้
1. เพื่อให้นักศึกษาทราบวิธีการของอะเรย์
2. เพื่อให้นักศึกษาทราบวิธีการส่งค่าของอะเรย์
ในโปรแกรม และฟังก์ชัน
3. เพื่อให้นักศึกษาทราบวิธีการดำเนินการที่
เกี่ยวข้องกับเรคคอร์ด ข้อมูล
4. เพื่อให้นักศึกษาทราบความสัมพันธ์ของข้อมูล
ที่เกิดขึ้นของเรคคอร์ดกับอะเรย์ข้อมูล
Phorramatpanyaprat T. : Data Structure 4
Array
อะเรย์เป็นโครงสร้างข้อมูลที่เรียกว่า Linear List มีลักษณะ
คล้ายเซ็ตในคณิตศาสตร์ คือ อะเรย์จะประกอบด้วยสมาชิกที่มีจำนวน
คงที่ มีรูปแบบข้อมูลเป็นแบบเดียวกัน สมาชิกแต่ละตัวใช้เนื้อที่จัดเก็บ
ที่มีขนาดเท่ากัน เรียงต่อเนื่องในหน่วยความจำหลัก
การกำหนด Array
การกำหนดอะเรย์จะต้องกำหนดชื่ออะเรย์ พร้อม
subscript ซึ่งเป็นตัวกำหนดขอบเขตของอะเรย์ มีได้
มากกว่า 1 ตัวจำนวน subscript จะเป็น ตัวบอกมิติ
ของอะเรย์นั้น อะเรย์ที่มี subscript มากกว่า 1 ตัวขึ้นไป จะ
เรียกว่า อะเรย์หลายมิติ
วันพฤหัสบดีที่ 25 มิถุนายน พ.ศ. 2552
DTS ครั้งที่ 02-23/06/2009
สรุปสาระในการเรียนรู้บทที่1
ความหมายของโครงสร้างข้อมูล คือ ความสัมพันธ์ระหว่างข้อมูลที่อยู่ในโครงสร้างนั้นๆ รวมทั้งกระบวนการในการจัดการข้อมูลในโครงสร้าง เช่น เพิ่ม แก้ไข ลบ
ประเภทของโครงสร้างข้อมูล
ในภาษาคอมพิวเตอร์จะแบ่งเป็น 2 ประเภท คือ
1. โครงสร้างข้อมูลทางกายภาพ
- เป็นโครงสร้างข้อมูลที่ใช้โดยทั่วไปในภาษาคอมพิวเตอร์แบ่งออกเป็น 2 ประเภทตามลักษณะข้อมูล
1. ข้อมูลเบื้องต้น Primitive Data Types
ได้แก่ จำนวนเต็ม จำนวนจริง และตัวอักขระ
2. ข้อมูลโครงสร้าง Structured Data Types
ได้แก่ แถวลำดับ ระเบียนข้อมูล และแฟ้มข้อมูล เป็นต้น
2. โครงสร้างข้อมูลทางตรรกะ
-เป็นโครงสร้างข้อมูลที่เกิดจากจินตนาการของผู้ใช้เพื่อใช้ในการแก้ปัญหาในโปรแกรมที่สร้างขึ้น แบ่ง เป็น 2 ประเภท
1. โครงสร้างข้อมูลเชิงเส้น Linear Data Structures
ความสัมพันธ์ของข้อมูลจะเรียงต่อเนื่องกัน เช่น ลิสต์ สแตก คิว สตริง
2. โครงสร้างข้อมูลทางตรรกะ Non-Linear Data Structures
ข้อมูลแต่ละตัวสามารถมีความสัมพันธ์กับข้อมูลอื่นได้หลายตัว
ได้แก่ ทรี และกราฟ
ขั้นตอนวิธีที่ดีควรมีคุณสมบัติ ดังนี้
1. มีความถูกต้อง
2. ใช้เวลาในการปฏิบัติงานน้อยที่สุด
3. สั้น กระชับ มีเฉพาะขั้นตอนที่จำเป็นเท่านั้น
4. ใช้หน่วยความจำน้อยที่สุด
5. มีความยืดหนุ่นในการใช้งาน
6. ใช้เวลาในการพัฒนาน้อยที่สุด
7. ง่ายต่อการทำความเข้าใจ
การบ้าน
ความหมายของโครงสร้างข้อมูล คือ ความสัมพันธ์ระหว่างข้อมูลที่อยู่ในโครงสร้างนั้นๆ รวมทั้งกระบวนการในการจัดการข้อมูลในโครงสร้าง เช่น เพิ่ม แก้ไข ลบ
ประเภทของโครงสร้างข้อมูล
ในภาษาคอมพิวเตอร์จะแบ่งเป็น 2 ประเภท คือ
1. โครงสร้างข้อมูลทางกายภาพ
- เป็นโครงสร้างข้อมูลที่ใช้โดยทั่วไปในภาษาคอมพิวเตอร์แบ่งออกเป็น 2 ประเภทตามลักษณะข้อมูล
1. ข้อมูลเบื้องต้น Primitive Data Types
ได้แก่ จำนวนเต็ม จำนวนจริง และตัวอักขระ
2. ข้อมูลโครงสร้าง Structured Data Types
ได้แก่ แถวลำดับ ระเบียนข้อมูล และแฟ้มข้อมูล เป็นต้น
2. โครงสร้างข้อมูลทางตรรกะ
-เป็นโครงสร้างข้อมูลที่เกิดจากจินตนาการของผู้ใช้เพื่อใช้ในการแก้ปัญหาในโปรแกรมที่สร้างขึ้น แบ่ง เป็น 2 ประเภท
1. โครงสร้างข้อมูลเชิงเส้น Linear Data Structures
ความสัมพันธ์ของข้อมูลจะเรียงต่อเนื่องกัน เช่น ลิสต์ สแตก คิว สตริง
2. โครงสร้างข้อมูลทางตรรกะ Non-Linear Data Structures
ข้อมูลแต่ละตัวสามารถมีความสัมพันธ์กับข้อมูลอื่นได้หลายตัว
ได้แก่ ทรี และกราฟ
ขั้นตอนวิธีที่ดีควรมีคุณสมบัติ ดังนี้
1. มีความถูกต้อง
2. ใช้เวลาในการปฏิบัติงานน้อยที่สุด
3. สั้น กระชับ มีเฉพาะขั้นตอนที่จำเป็นเท่านั้น
4. ใช้หน่วยความจำน้อยที่สุด
5. มีความยืดหนุ่นในการใช้งาน
6. ใช้เวลาในการพัฒนาน้อยที่สุด
7. ง่ายต่อการทำความเข้าใจ
การบ้าน
#include stdio.h
#include string.h
void main()
{
struct camera {
char brand[10];
int barcode;
int price;
int memory;
int lenewidth;
char madein[10];
float pixel;
int waranty;
};
struct camera data;
strcpy(data.brand,"Kodak");
data.barcode=5678;
data.price=3000;
data.memory=1;
data.lenewidth=300;
strcpy(data.madein,"Thailand");
data.pixel=4.213;
data.waranty=12;
printf(" Brand Name: %s \n\n",data.brand);
printf(" Barcode: %d \n\n",data.barcode);
printf(" Price : %d Bath\n\n",data.price);
printf(" Memory : %d Gb.\n\n",data.memory);
printf(" Lene Width :%d mm.\n\n",data.lenewidth);
printf(" Mede in: %s \n\n",data.madein);
printf(" Pixel: %.4f milion\n\n",data.pixel);
printf(" Waranty: %d month\n\n",data.waranty);
}
วันพุธที่ 24 มิถุนายน พ.ศ. 2552
วันจันทร์ที่ 22 มิถุนายน พ.ศ. 2552
ประวัติ
สมัครสมาชิก:
บทความ (Atom)