วันพฤหัสบดีที่ 15 ตุลาคม พ.ศ. 2552

ลูกแรดเตรียมพร้อมล่าเหยื่อ

สรุปสิ่งที่ได้จากการเรียน การเตรียมฝึกประสบการณ์วิชาชีพบริหารธุรกิจ

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

DST-11-16-09-2552

สรุปบทเรียนเรื่อง
searching การค้นหาข้อมูลแบบ

searching มี 2 แบบคือ
1.การค้นหาข้อมูลแบบภายใน
2.การค้นหาข้อมูลแบบภายนอก

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

การค้นหาแบบเซนทินัลเป็นวิธีการค้นหาแบบเดียวกับวิธีแบบเชิงเส้น แต่ประสิทธิภาพดีกว่า ตรงที่วิธีเปรียบเทียบน้อยครั้งกว่าพัฒนามาจากอัลกอริทึ่มแบบเชิงเส้น

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

วันพุธที่ 30 กันยายน พ.ศ. 2552

DTS 10-09-09-2552

สรุปการเรียน
กราฟ (ต่อ) และ Sorting

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

การเรียงลำดับอย่างมีประสิทธิภาพ
(1) เวลาและแรงงานที่ต้องใช้ในการเขียนโปรแกรม
(2) เวลาที่เครื่องคอมพิวเตอร์ต้องใช้ในการทำงานตามโปรแกรมที่เขียน
(3) จำนวนเนื้อที่ในหน่วยความจำหลักมีเพียงพอหรือไม่

วิธีการเรียงลำดับ
(1)การเรียงลำดับแบบภายใน (internal sorting)เป็นการเรียงลำดับที่ข้อมูลทั้งหมดต้องอยู่ในหน่วยความจำหลัก เวลาที่ใช้ในการเรียงลำดับจะคำนึงถึงเวลาที่ใช้ในการเปรียบเทียบและเลื่อนข้อมูลภายในความจำหลัก
(2) การเรียงลำดับแบบภายนอก(external sorting) เป็นการเรียงลำดับข้อมูลที่เก็บอยู่ในหน่วยความจำสำรอง ซึ่งเป็นการเรียงลำดับข้อมูลในแฟ้มข้อมูล (file) เวลาที่ใช้ในการเรียงลำดับต้องคำนึงถึงเวลาที่เสียไประหว่างการถ่ายเทข้อมูลจากหน่วยความจำหลักและหน่วยความจำสำรองนอกเหนือจากเวลาที่ใช้ในการเรียงลำดับข้อมูลแบบภายใน

การเรียงลำดับแบบเลือก (selection sort)ทำการเลือกข้อมูลมาเก็บในตำแหน่งที่ ข้อมูลนั้นควรจะอยู่ทีละตัว โดยทำการค้นหาข้อมูลนั้นในแต่ละรอบแบบเรียงลำดับถ้าเป็นการเรียงลำดับจากน้อยไปมาก
1. ในรอบแรกจะทำการค้นหาข้อมูลตัวที่มีค่าน้อยที่สุดมาเก็บไว้ที่ตำแหน่งที่ 1
2. ในรอบที่สองนำข้อมูลตัวที่มีค่าน้อยรองลงมาไปเก็บไว้ที่ตำแหน่งที่สอง
3. ทำเช่นนี้ไปเรื่อย ๆ จนกระทั่งครบทุกค่าในที่สุดจะได้ข้อมูลเรียงลำดับจากน้อยไปมากตามที่ต้องการในการเรียงลำดับข้อมูลแบบภายใน

การเรียงลำดับแบบฟอง (Bubble Sort)เป็นวิธีการเรียงลำดับที่มีการเปรียบเทียบข้อมูลในตำแหน่งที่อยู่ติดกัน
1. ถ้าข้อมูลทั้งสองไม่อยู่ในลำดับที่ถูกต้องให้สลับตำแหน่งที่อยู่กัน
2. ถ้าเป็นการเรียงลำดับจากน้อยไปมากให้นำข้อมูลตัวที่มีค่าน้อยกว่าอยู่ในตำแหน่งก่อนข้อมูลที่มีค่ามาก ถ้าเป็นการเรียงลำดับจากมากไปน้อยให้นำข้อมูล ตัวที่มีค่ามากกว่าอยู่ในตำแหน่งก่อนข้อมูลที่มีค่าน้อย

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

DTS 09-8-09-2552

สรุปเนื้อหา
เรื่อง Tree และ Graph

เอ็กซ์เพรชชันทรี
เป็นการนำเอาโครงสร้างทรีไปใช้เก็บนิพจน์ทางคณิตศาสตร์โดยเป็นไบนารีทรี ซึ่งแต่ละโหนดเก็บตัวดำเนินการ (Operator) และตัวถูกดำเนินการ (Operand) ของนิพจน์คณิตศาสตร์นั้นๆไว้หรืออาจจะเก็บค่านิพจน์ทางตรรกะ (Logical Expression) นิพจน์เหล่านี้เมื่อแทนในทรต้องคำนึงลำดับขั้นตอนในการคำนวณตามความสำคัญของเครื่องหมายด้วยโดยมีความสำคัญตามลำดับดังนี้ฟังก์ชั่น,วงเล็บ,ยกกำลัง,เครื่องหมายหน้าเลขจำนวน Unary,คูณหรือหาร,บอกหรือลบ,ถ้ามีเครื่องหมายที่ระดับเดียวกันให้ทำจากซ้ายไปขวา

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

กราฟ (Graph)เป็นโครงสร้างข้อมูลแบบไม่ใช่เชิงเส้นที่ประกอบด้วย
1. โหนด (N0des)
2. เส้นเชื่อมระหว่างโหนด

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

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

1. การท่องแบบกว้าง (Breadth First Traversal)วิธีนี้ทำโดยเลือกโหนดที่เป็นจุดเริ่มต้น ต่อมาให้เยือนโหนดอื่นที่ใกล้กันกับโหนดเริ่มต้นทีละระดับจนกระทั่งเยือนหมดทุกโหนดในกราฟ
2. การท่องแบบลึก (Depth First Traversal)การทำงานคล้ายกับการท่องทีละระดับของทรี โดยกำหนดเริ่มต้นที่โหนดแรกและเยือนโหนดถัดไปตามแนววิถีนั้นจนกระทั่งนำไปสู่ปลายวิถีนั้น จากนั้นย้อนกลับ(backtrack) ตามแนววิถีเดิมนั้น จนกระทั่งสามารถดำเนินการต่อเนื่องเข้าสู่แนววิถีอื่น ๆ เพื่อเยือนโหนดอื่น ๆ ต่อไปจนครบทุกโหนด

DTS 08-26-08-2552

สรุปบทเรียน
เรื่อง Tree

ทรี ( Tree ) เป็นโครงสร้างข้อมุลที่ความสัมพันธ์ระหว่าง โหนดจะมีความสัมพันธ์ลดหลั่นกันเป็นลำดับชั้น(Hierarchical Relationship) แต่ละโหนดจะมีความสัมพันธ์กับโหนดในระดับต่ำลงมา หนึ่งระดับได้หลายๆโหนดเรียก โหนดดังกล่าวว่า โหนดแม่ , โหนดที่อยู่ต่ำกว่าโหนดแม่อยู่หนึ่งระดับเรียกว่า โหนดลูก, โหนดที่อยู่ในระดับสูงสุดและไม่มีโหนดแม่เรียกว่า โหนดราก, โหนดที่มีโหนดแม่เป็นโหนดเดียวกันเรียกว่า โหนดพี่น้อง, โหนดที่ไม่มีโหนดลูก เรียกว่า โหนดใบ, เส้นเชื่อมแสดงความสัมพันธ์ระหว่างสองโหนดเรียกว่า กิ่ง

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

การแปลงทรีท่วไปให้เป็นไบนารีทรี
1. ให้โหนดแม่ชี้ไปยังโหนดลูกคนโต แล้วลบความสัมพันธ์ระหว่างโหนดแม่และโหนดลูกอื่นๆ
2. ให้เชื่อมความสัมพันธ์ระหว่างโหนดพี่น้อง
3. จับให้ทรีย่อยทางขวาเอียงลงมา 45 องศา

การท่องไปในไบนารีทรี
1. การท่องไปแบบพรีออร์เดอร์ NLR
2. การท่องไปแบบอืนออร์เดอร์ LNR
3. การท่องไปแบบโพสออร์เดอร์ LRN

DTS 07-05-08-2552

สรุปบทเรียน
เรื่อง Queue

คิว (Queue) เป็นโครงสร้างข้อมูลแบบเชิงเส้นหรือลิเนียร์ลิสต์ซึ่งการเพิ่มข้อมูลจะกระทำที่ปลายข้างหนึ่งซึ่งเรียกว่าส่วนท้ายหรือเรียร์ (rear) และการนำข้อมูลออกจะกระทำที่ปลายอีกข้างหนึ่งซึ่งเรียกว่า ส่วนหน้า หรือฟรอนต์ (front)
ลักษณะการทำงานของคิวเป็นลักษณะของการเข้าก่อนออกก่อนหรือที่เรียกว่า FIFO (First In First Out)

การทำงานของคิว
การใส่สมาชิกตัวใหม่ลงในคิวเรียกว่า Enqueue ซึ่งมีรูปแบบคือ enqueue (queue,newElement)
หมายถึง การใส่ข้อมูล newElement ลงไปในส่วนเรียร์ของคิว
การนำสมาขิกออกจากติว เรียกว่า Dequeue ซึ่งมีรูปแบบคือ dequeue (queue,element)
หมายถึง การนำออกจากส่วนหน้าของคิวและให้ข้อมูลนั้นกับ element
การนำข้อมูลที่อยู่ตอนต้นของคิวมาแสดงจะเรียกว่าQueue Front แต่จะไม่ทำการเอาข้อมูลออกจากคิว
การนำข้อมูลที่อยู่ตอนท้ายของคิวมาแสดงเรียกว่า Queue Rear แต่จะไม่ทำการเพิ่มข้อมูลลงไปในคิว

การแทนที่ข้อมูลของคิว ทำได้ 2 วิธี คือ
1. การแทนที่ข้อมูลของคิวแบบลิงค์ลิสต์ ประกอบไปด้วย 2 ส่วน คือ
1) Head Node พอยเตอร์จำนวน 2 ตัว คือ Front และ rear กับจำนวนสมาชิกในคิว
2) Data Node จะประกอบไปด้วยข้อมูล (Data) และพอยเตอร์ที่ชี้ไปยังข้อมูลตัวถัดไป
2. การแทนที่ข้อมูลของคิวแบบอะเรย์

การประยุกต์ใช้ในธุรกิจ ประกอบไปด้วย
1. Create Queue จัดสรรหน่วยความจำให้แก่ Head node และให้ค่า Pointer
2. Enqueue การเพิ่ทข้อมูลเข้าไปในคิว
3. Dequeue การนำข้อมูลออกจากคิว
4. Queue Front การนำข้อมูลที่อยู่ส่วนต้นของคิวมแสดง LIFO
5. Queue Rear เป็นการนำข้อมูลที่อยู่ส่วนท้ายของคิวมาแสดง FIFO
6. Empty Queue เป็นการตรวจสอบว่าคิวว่างหรือไม่
7. Full Queue เป็นการตรวจสอบว่าคิวเต็มหรือไม่
8. Queue Count เป็นการนับสมาชิกที่อยู่ในคิว
9. Destroy Queue เป็นการลบข้อมูลทั้งหมดที่อยู่ในคิว

DTS 06-29-07-2552

สรุปบทเรียน
เรื่อง Stack (ต่อ)

การแทนที่ข้อมูลของสแตก มี 2 วิธี คือ
1. การแทนที่ข้อมูลของสแตกด้วยอาร์เรย์ คือ การแทนสแตกด้วยโครงสร้างอาร์เรย์นั้นเนื่องจากอาร์เรย์เป็นโครงสร้างที่ต้องมีการกำหนดขนาดพื้นที่เท่ากับขนาดที่ใหญ่ที่สุด(Static) จึงจำเป็นต้องมีการกำหนดขนาดพื้นที่จัดเก็บข้อมูลสูงสุดให้เหมาะสมเมื่อมีการนำเอาข้อมูลเข้ามาก็จะนำเข้ามาจัดไว้ในอาร์เรย์แรกสุด จากนั้นจึงเรียงลำดับกันไปตามพื้นที่ที่กำหนด
2. การแทนที่ข้อมูลของสแตกแบบลิงค์ลิสต์ คือ การแทนสแตกด้วยโครงสร้างแบบลิงค์ลิสต์นั้น ไม่มีข้อจำกัดของขนาดของสแตกและหน่วยความจำจะถูกใช้ก็ต่อเมื่อมีข้อมูลจริงๆแล้วเท่านั้น ซึ่งทำให้ประหยัดเนื้อที่ในหน่วยความจำมากกว่า แต่การเขียนโค้ดสำหรับการแทนที่ข้อมูลสแตกด้วยอาร์เรย์ง่ายกว่าการแทนที่ข้อมูลด้วยลิงค์ลิสต์
การดำเนินงานเกี่ยวกับสแตก ได้แก่
1. Creste Stack คือ การสร้าง stack head node
2. Push Stack คือ การเพิ่มรายการใน stack
3. Pop Stack คือ การลบรายการใน stack
4. Stack Top คือ การเรียกใช้งานรายการข้อมูลที่อยู่บนสุดของ stack
5. Empty Stack คือ การตรวจสอบว่า Stack ว่างป่าวหรือไม่
6. Full Stack คือ การตรวจสอบว่า Stack เต็มหรือไม่
7. Stack Count คือ การส่งค่าจำนวนรายการในสแตก
8. Destroy Stack คือ การคืนหน่วยความจำของทุกโหนดในสแตกให้ระบบ

การคำนวณนิพจน์ทางคณิตศาสตร์-นิพจน์ทางคณิตศาสตร์ที่เขียนในโปรแกรมคอมพิวเตอร์ ประกอบด้วยตัวดำเนินการ(operator) และตัวถูกดำเนินการ(operand) โดยทั่วไปนิพจน์ทางคณิตศาสตร์สามารถเขียนได้ 3 รูปแบบ คือ1. แบบอินฟิกซ์ (Infix) เป็นรูปแบบที่ตัวดำเนินการอยู่ระหว่างตัวถูกดำเนินการ2. แบบพรีฟิกซ์ (Prefix) เป็นรูปแบบที่ตัวดำเนินการอยู่หน้าตัวถูกดำเนินการ3. แบบโพสต์ฟิกซ์ (Postfix) เป็นรูปแบบที่ตัวดำเนินการอยู่หลังตัวถูกดำเนินการ
***A B C D คือ operand
***+ - * / คือ operator

ขั้นตอนการแปลงนิพจน์ Infix เป็น Postfix
1. อ่านอักขระใน infix ทีละตัว
2. ถ้าเป็น operand จะถูกย้ายไปที่ postfix
3. ถ้าเป็น operator จะต้องดูค่าความสำคัญและนำมาเปรียบเทียบกับ operator ที่อยู่บนสุดของสแตก-ถ้ามีความสำคัญมากกว่า จะถูก Push ลงในสแตก-ถ้ามีความสำคัญน้อยกว่าหรือเท่ากัน จะต้อง Pop ตัวดำเนินการที่อยู่ในสแตกไปเรียงต่อที่ Postfix
4. Operator ที่เป็นวงเล็บปิด “)” จะไม่ push ลงในสแตก แต่จะให้ operator ตัวอื่น pop ออกไปเรียงต่อที่ Postfix จนกว่าจะเจอ “(“
5. เมื่ออ่านตัวอักษรใน Infix หมดแล้ว ให้ทำการ popตัวดำเนินการทั้งหมดในสแตกออกไปเรียงต่อที่ Postfix

DTS 05-22-07-2552

สรุปการเรียน
เรื่อง Link List และ Stack

Link List(ต่อ)
- Search list จะทำหน้าที่ค้นหาข้อมูลที่ต้องการข้อมูลนำเข้าในลิสต์
- Traverse ทำหน้าที่ท่องไปในลิสต์เพื่อเข้าถึงและประมวลผลข้อมูลนำเข้าลิสต์
- Retrieve Node ทำหน้าที่หาตำแหน่งข้อมูลนำเข้าลิสต์
- EmptyList ทำหน้าที่ทดสอบข้อมูลนำเข้าลิสต์
- FullList ทำหน้าที่ทดสอบว่าลิสต์เต็มหรือไม่
- List count ทำหน้าที่นับจำนวนข้อมูลที่อยู่ในลิสต์
- Destroy list ทำหน้าที่ทำลายลิสต์ข้อมูลนำเข้า

Linked List แบบซับซ้อน
1. Circular Linked List คือ ลิงค์ลิสต์ที่โหนดสุดท้ายสามารถวนกลับมาที่โหนดแรกได้
2. Double Linked List คือ ลิงค์ลิสต์ที่ทุกโหนดสามรถวกกลับมาที่โหนดก่อนหน้าของตนเองได้

Stackสแตก (Stack) คือ โครงสร้างข้อมูลแบบลิเนียร์ลิสต์ ที่มีคุณสมบัติที่ว่า การเพิ่มหรืลบข้อมูลในสแตก จะกระทำที่ปลายข้างเดียวกัน ซึ่งเรียกว่า Top ของสแตก(Top Of Stack) และลักษณะที่สำคัญของสแตก คือ ข้อมูที่ใส่หลังสุดจะถูกนำออกมาจากสแตกเป็นลำดับแรกสุด เรียกคุณสมบัตินี้ว่า LIFO (Last In Fist Out)

การดำเนินงานพื้นฐานของสแตก ประกอบด้วยกระบวนการ 3 ประการ คือ
1. Push คือ การนำข้อมูลใส่ลงไปในสแตก ซึ่งปกติแล้วก่อนที่จะนำข้อมูลเก็บลงในสแตกจะต้องมีการตรวจพื้นที่ในสแตกก่อนว่ามีที่เหลือว่างให้เก็บข้อมูลอีกหรือไม่
2. Pop คือ การเอาข้อมูลที่อยู่บนสุดในสแตก หรือที่ชี้ด้วยท๊อปออกจากสแตก เรียกว่าการ Pop ในการ Pop นั้นเราจะสามารถ Pop ข้อมูลจากสแตกได้เรื่อยๆจนกว่า ข้อมูลจะหมดสแตก หรือเป็นสแตกว่าง โดยก่อนที่จะนำข้อมูลออกจากสแตก จะต้องมีการตรวจสอบว่าในสแตกมีข้อมูลเก็บอยู่หรือไม่
3. Stack Top คือ การคัดลอกข้อมูลที่อยู่บนสุดของสแตก แต่ไม่ได้นำเอาข้อมูลนั้นออกจากสแตก

***ตัวอย่างของสแตก (LIFO)การเก็บลูกแบตมินตันใส่กล่อง คือ ลูกแบตลูกแรกจะอยู่ในสุดของกล่องแล้วเรียงต่อไปเรื่อยๆและถ้าเราจะหยิบลูกแบตลูกแรกออก เราจะต้องหยิบลูกที่เราใส่ไปทีหลังออกก่อน

DTS04-15-07-2552

สรุปเนื้อหาบทเรียน “Data Structure”
เรื่อง Linked List

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

***ในลิงค์ลิสต์จะมีตัวแปรสำหรับชี้ตำแหน่งลิสต์ (list pointer variable) ซึ่งเป็นที่เก็บตำแหน่งเริ่มต้นของลิสต์ ซึ่งก็คือ โหนดแรกของลิสต์นั่นเอง ถ้าลิสต์ไม่มีข้อมูล ข้อมูลในโหนดแรกของลิสต์จะเป็นNull
โครงสร้างข้อมูลแบบลิงค์ลิสต์ประกอบด้วย 2 ส่วน คือ
1. Head Structure จะประกอบด้วยไปด้วย 3 ส่วน ได้แก่ จำนวนโหนดในลิสต์ (Count) , พอยเตอร์ที่ชี้ไปยังโหนดที่เข้าถึง (Pos) , และพอยเตอร์ที่ชี้ไปยังโหนดข้อมูลแรกของลิสต์ (Head)
2. Data Node Structure จะประกอบไปด้วย ข้อมูล และพอยเตอร์ที่ชี้ไปยังข้อมูลตัวถัดไป
** การเพิ่มข้อมูลลงในลิงค์ลิสต์ จะสามารถกระทำได้โดยการเปลี่ยนพอยเตอร์บางตัว และค้นหาข้อมูลใน ลิงค์ลิสต์ เพื่อหาตำแหน่งของโหนดที่มาก่อนโหนดที่ต้องการเพิ่ม และสิ่งสำคัญในการเพิ่มข้อมูลในลิงค์ลิสต์ นั่นคือ ลำดับการเปลี่ยนพอยเตอร์
** การลบข้อมูลออกจากลิงค์ลิสต์ ถ้าต้องการลบข้อมูลตัวใดในลิงค์ลิสต์สามารถลบออกได้เลย แต่จะต้องเปลี่ยน head เพื่อชี้ข้อมูลไปยังข้อมูลตัวแรกของลิงค์ลิสต์ในกรณีที่ลบข้อมูลตัวแรกออก แล้ว link คือ เมื่อลบข้อมูลตัวใดออกควรชี้ link ถัดไปให้ถูกต้อง

DTS 03-1-07-2552

สรุปเนื้อหาบทเรียน "Data Structure"
เรื่อง Pointer และ Set and String


Pointerทำหน้าที่เก็บตำแหน่งที่อยู่ของตัวแปรในการประกาศตัวแปร pointer จะต้องนำหน้าด้วยเครื่องหมาย

*เช่น float *salary; //ประกาศตัวแปร pointer

เครื่องหมาย &เป็นเครื่องหมายที่ใช้เพื่อเอาค่าตำแหน่งที่อยู่ของตัวแปรออกมาใช้

เช่น ptr = &countStringหมายถึงอักขระที่มีความยาวมากกว่า 1 ตัวต่อกันเป็นข้อความจำพวกตัวอักษร ตัวเลขหรือเครื่องหมายจุดสิ้นสุดของ string จะเป็น \0

โดยข้อมูลชนิดข้อความต้องเขียนอยู่ภายในเครื่องหมาย " "

วันพุธที่ 1 กรกฎาคม พ.ศ. 2552

DTS 02-24-06-2552

"Data Structure"

สรุปเนื้อหา Array and Record


Array อะเรย์ คือ กลุ่มตัวแปรชนิดเดียวกันที่ใช้ชื่อเดียวกัน อะเรย์จะมีตัวห้อยหรือ subscript เป็นตัวระบุจำนวนสมาชิก อะเรย์จะแบ่งออกเป็น 1.อะเรย์มิติเดียว คือจะเก็บข้อมูลในแถวเดียวไม่ว่าจะเป็นแนวนอน หรือ แนวตั้ง รูปแบบของอะเรย์มิติเดียว ได้แก่ ชนิดของตัวแปร ชื่อของตัวแปร ขนาดของตัวแปรอะเรย์ เช่น int num[5] 2.อะเรย์หลายมิติ จะมี 2 มิติ หรือ 3 มิติ จะแตกต่างจากอะเรย์มิติเดียวตรงที่ตัวห้อย คือ ตัวห้อยของอะเรย์จะมีขนาดของแถวและขนาดของคอลัมน์มาเป็นตัวบอกจำนวนสมาชิกด้วย ได้แก่ ชนิดของตัวแปร ชื่อของตัวแปร ขนาดของแถว ขนาดของคอลัมน์ เช่น int num[2][3]
Structure คือ โครงสร้างข้อมูลที่มีประเภทข้อมูลต่างชนิดกันได้ สมาชิกอาจเป็น จำนวนเต็ม ทศนิยม พอยเตอร์ ก็ได้เมื่อต้องการอ้างถึงตัวแปรในโครงสร้างของ structure จะใช้ . มาเป็นตัวอ้าง เช่น personal.name

วันจันทร์ที่ 29 มิถุนายน พ.ศ. 2552

การบ้าน"Structure"

struct shoe{
int size;
char color[10];
int item;
char brand[20];
float price;
char type[20];
char shop[20];
char import[20];
}shoe1;

ประวัติข้าพเจ้า

ประวัติข้าพเจ้า
ชื่อ นาย ธิติภัทร คลังทอง
เล่น ดิฟฟ์
เกิด 11/มิ.ย./31
ภูมิลำเนา ชัยภูมิ
ศาสนา พุทธ
ปัจจุบันศึกษาที่ มหาวิทยาลัยราชภัฏสวนดุสิต
รหัสนักศึกษา 50152792022
คณะ วิทยาการจัดการ
หลักสูตร บริหารธุรกิจ
โปรแกรม คอมพิวเตอร์ธุรกิจ
รหัสโปรแกรม 79.1
หลักสูตร ปริญญาตรี 4 ปี
ภาค ปกติ
ความสนใจ ถ่ายภาพ
ภาพยนตร์เรื่องโปรด Gridiron gang
ดนตรีโปรด Indy
หนังสือโปรด ทะลึ่ง
e-mail u50152792022@gmail.com
A friend in need is a friend indeed.