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

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

สิ่งที่ได้รับจากการฝึกประสบการณ์วิชาชีพ 3

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

2.ได้รับรู้ความรู้ใหม่ๆ หลายๆด้าน
การเรียนวิชาเตรียมฝึกประสบการณ์วิชาชีพ 3 นี้ ทำให้เราได้เรียนรู้วิชาต่างๆที่ไม่มีในเนื้อหา ได้เรียนรู้สิ่งต่างๆที่สามารถนำไปใช้ในการที่เราจะต้องไปฝึกงานในสถานที่จริง

3.ได้เรียนรวมกับเพื่อนต่างห้อง ต่างคณะ
การเรียนรวมกับเพื่อนต่างห้อง ต่างคณะ ได้ทำให้เราเกิดความสามัคคี ได้พึ่งพาอาศัยกัน คอยช่วยเหลือกัน
ไม่มีการแบ่งแยกกันระหว่างห้อง ระหว่างคณะ

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

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

DTS 11-16-09-2552

สรุปเรื่อง searching

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

DTS 10-09-09-2552

สรุปเรื่อง กราฟ (ต่อ) และ Sorting

การท่องไปในกราฟอัลกอริทึ่มแบบลึกมีดังนี้
1. push โหนดเริ่มต้นไปเก็บในสแตก และปรับ Top
ให้ชี้ที่ตำแหน่งจุดเริ่มต้น
2.pop สมาชิกใหม่ออกจากสแตก 1 จำนวน
ปรับค่า pop ใหม่ดังนี้ top=top-1
3.push โหนดประชิดทั้งหมด ของโหนดที่ pop ครั้งสุดท้าย
ลงสแตกกำหนดโหนดที่จะ push นั้นต้องไม่เคย push ลงในสแตกมาก่อน
และปรับค่า top ใหม่ดังนี้
top=top+จำนวนโหนดประชิดที่ push ลงในสแตก
4.ตรวจสอลข้อมูลถ้ามีให้ไปทำที่ ข้อ 2
5.จบการทำงาน

การท่องไปในกราฟอัลกิริทึ่มแบบกว้าง มีดังนี้
1.นำโหนดเริ่มต้นไปเก็บในคิว และปรับค่า Front และ rear=1
2.นำสมาชิกออกจากคิว 1 จำนวน และปรับค่า
Front ใหม่ดังนี้ front=front+1
3.นำโหนดประชิดของโหนดทั้งหมดที่ตำแหน่ง front ไปเก้บในคิว
โดยโหนดที่จะเข้าคิวนั้นจะต้องไปเคยเก็บไว้ในคิวมาก่อน
และปรับค่า rear ใหม่ดังนี้ rear=rear+1
4.ตรวจสอบคิวถ้ามีข้อมูลให้ไปทำ ข้อ 2
5. จบการทำงาน

กราฟมีน้ำหนักหมายถึง กราฟที่ทุกเอจมีค่าน้ำหนักกำกับ
นิยมนำไปใช้แก้ปัญหา 2 ปัญหา หลักๆ คือ
1.การสร้างต้นไม้ทอดข้ามน้อยที่สุด
2.การหาเส้นทางที่สั้นที่สุด

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

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

วันพุธที่ 14 ตุลาคม พ.ศ. 2552

DTS 09-02-09-2552

สรุปเรื่องทรี (ต่อ) และเรื่อง กราฟ

การท่องเข้าไปในไบนารีทรี
ปฏิบิตการที่สำคัญของไบนารีทรี คือ
การท่องเข้สไปในไบนารีทรีเพื่อนเยือนทุกโหนดในทรี
ขั้นตอนการเยือนของโหนดที่ถูกเยือนอาจเป็น
โหนดแม่ แทนด้วย N
ทรีย่อยทางซ้าน แทนด้วย L
ทรีย่อยทางขวา แทนด้วย R

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

ไบนารีเสริททรี ( Binary Searh Tree )
เป็นไบนารีที่มีคุณสมบัติที่ว่าทุกๆโหนดในทรี
ค่าของโหนดรากมีค่ามากกว่าทุกๆโหนดในทรีย่อยทางซ้าย
และมีค่าน้อยกว่าหรือเท่ากับค่าของทุกโหนดในทรีย่อยทางขวา
และในแต่ละทรีย่อยก็มีคุณสมบัติเช่นเดียวกัน

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

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

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

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

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







วันจันทร์ที่ 12 ตุลาคม พ.ศ. 2552

DTS 08-26-08-2552

สรุปเรื่อง "ทรี"

ทรี หรือที่เรียกอีกอย่างหนึ่งว่าโครงสร้างต้นไม้
เป็นอีกโครงสร้างที่มีความสัมพันธ์กัน
จะประกอบไปด้วยโหนด ( Node )
แต่ละโหนดจะมีความสัมพันธ์กัน
และยังสามารถแตกโหนดออกมาเป็นโหนดย่อยๆ
ได้อีกหลายโหนดด้วยกันเรียกว่า "โหนดลูก"
เมื่อเรามีโหนดลูกแล้วก็ยังสามารถ
แตกออกไปเป็นโหนดพ่อ โหนดแม่ได้อีก

ชนิดของ "ทรี" จะแบ่งออกได้ 2 ชนิดคือ
1.ทรีทั่วไป
2.ไบนารีทรี

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

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

ไบนารีทรีมีทั้งทรีย่อย ซ้าย เเละ ขวา ยกเว้นโหนดใบ และโหนดใบทุกโหนด
จะต้องอยู่ในระดับเดียวกันเรียกว่า ไบนารีทรีแบบสมบูรณ์

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

การท่องไปในไบนารีทรี มีด้วยกัน 3 แบบคือ
**การท่องไปแบบพรีออเดอร์
1เยือนโหนดราก
2.ท่องไปในทรีย่อยทางซ้ายแบบพรีออเดอร์
3.ท่องไปในทรีย่อยทางขวาแบบพรีออเดอร์

**การท่องแบบอินออเดอร์
1.ท่องไปในทรีย่อยทางซ้ายแบบอินออเดอร์
2.เยือนโหนดราก
3.ท่องไปในทรีย่อยทางขวาแบบอินออเดอร์

**การท่องแบบโพสต์ออร์เดอร์
1.ท่องไปในทรีย่อยทางซ้ายแบบโพสต์ออร์เดอร์
2.ท่องไปในทรย่อยทางขวาแบบโพสต์ออร์เดอร์
3.เยือนโหนดราก

DTS 08-26-08-2552

สรุปเรื่อง Tree

ทรี หรือจะเรียกกันอีกอย่างว่าโครงสร้างต้นไม้
เป็นอีกโครงสร้างที่มีความสัมพันธ์กัน
จะประกอบไปด้วยโหนด (Node)
แต่ละโหนดจะมีความสัมพันธ์กัน
และยังสามารถแตกโหนดออกมาเป็นโหนดย่อยๆ
ได้อีกหลายโหนดด้วยกันเรียกว่าโหนดลูก
เมื่อเรามีโหนดลูกแล้วก้อยังสามารถ
แตกโหนดออกไปเป็นโหนดพ่อโหนดแม่ได้อีก

ชนิดของทรี จะแบ่งออกได้2ชนิดคือ
1 ทรีทั่วไป
2 ไบนารี่ทรี

ในแต่ละโหนดที่มีโหนดแม่เป็นโหนดเดียวกันนั้น
เรียกว่า โหนดพี่น้อง (Siblings)
โหนดที่ไม่มีโหนดลูก เรียกว่า โหนดใบ
และเส้นที่แสดงความสัมพันธ์กันระหว่างโหนดสองโหนด
เรียกว่า กิ่ง

ระดับของโหนดคือ

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

ไบนารี่ทรีทุกๆโหนดมีทรีย่อยทั้งทางซ้ายและทางขวา
ยกเว้นโหนดใบ และโหนดใบทุกโหนดจะต้องอยู่ในระดับ
เดียวกัน เรียกว่า ไบนารี่ทรีแบบสมบูรณ์

การแปลงทรีในทั่วไปให้เป็นไบนารี่ทรี
มีด้วยกันอยู่3ขั้นตอนคือ

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

การท่องไปในไบนารี่ทรีมีด้วยกัน3แบบคือ

1 การท่องไปแบบพรีออร์เดอร์
เป็นการเดินเข้าไปเยือนในโหนดต่างๆ
ในทรีด้วยวิธี NLR มีขั้นตอนการเดินดังต่อไปนี้
1 เยือนโหนดราก
2 ท่องไปในทรีย่อยทางซ้ายแบบพรีออร์เดอร์
3 ท่องไปในทรีย่อยทางขวาแบบพรีออร์เดอร์

2 การท่องไปแบบอินออร์เดอร์
เป็นการเดินเข้าไปเยือนโหนดต่างๆ
ในทรีด้วยวิธี LNR
มีขั้นตอนการเดินดังต่อไปนี้
1 ท่องไปในทรีย่อยทางซ้ายแบบอินออร์เดอร์
2 เยือนโหนดราก
3 ท่องไปในทรีย่อยทางขวาแบบอืนออร์เดรอ์

3 การท่องไปแบบโพสต์ออร์เดอร์
เป็นการเดินเข้าไปเยือนโหนดต่างๆ
ในทรีด้วยวิธี LRN
มีขั้นตอนการเดินดังต่อไปนี้
1 ท่องไปในทรีย่อยทางซ้ายแบบโพสต์ออร์เดอร์
2 ท่องไปในทรีย่อยทางขวาแบบโพสต์ออร์เดอร์
3 เยือนโหนดราก

วันอังคารที่ 8 กันยายน พ.ศ. 2552

DTS 07-05-08-2552

Queue

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

- การนำข้อมูลที่อยู่ตอนต้นของคิวมาแสดงเรียกว่า Queue Front แต่จะไม่ทำการเอาข้อมูลออกจากคิว

- การนำข้อมูลที่อยู่ตอนท้ายของคิวมาแสดงจะเรียกว่า Queue Rear แต่ไม่ทำการเพิ่มข้อมูลเข้าไปในคิวการแทนที่ข้อมูลของ

Queueสามารถทำได้มี 2 วิธี คือ
1. การแทนที่ข้อมูลของคิวแบบลิงค์ลิสต์
2. การแทนที่ข้อมูลของคิวแบบอะเรย์

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

- การนำข้อมูลเข้าสู่คิว จะไม่นำเข้าในขณะที่คิวเต็มหรือไม่มีที่ว่างถ้าพยายามนำข้อมูลเข้าจะเกิดการผิดพลาดที่เรียกว่า overflow

- การนำข้อมูลออกจากคิว จะไม่สามารถนำอะไรออกจากคิวที่ว่างได้ถ้าพยายามจะเอาออกจะเกิดการผิดพลาดที่เรียกว่า underflow

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

DTS 06-29-07-2552

สรุป stack (ต่อ)

การแทนที่ข้อมูลของสแตกแบบอะเรย์คือการนำเอาอาร์เรย์เข้ามาใช้งานในการกำหนดโครงสร้างซึ่งเป็นลักษณะเฉพาะตัวของอาร์เรย์เป็นโครงสร้างที่สามารถกำหนดจองพื้นที่บนหน่วยความจำได้แน่นอนและสามารถเก็บข้อมูลที่เป็นชนิดเดียวกันซึ่งจะเอาคุณสมบัตินี้มาใช้ในการกำหนดโครงสร้างและจัดเก็บข้อมูลในลักษณะสแตก--โครงสร้างอาร์เรย์นั้นจะมีการจองพื้นที่ที่แน่นอน (stack) จึงจำเป็นต้องมีการกำหนดขนาดพื้นที่จัดเก็บข้อมูลสูงสุดให้เหมาะสมเมื่อมีการนำ้เอาข้อมูลเข้ามาหลักการดำเนินการสำหรับแปลง infix เป็น postfix1.พิจารณานิพจน์ infix หากเป็น operand ให้นำออกไปที่ผลลัพธ์2.พิจารณานิพจน์ infix หากเป็น operator ให้นำมาเปรียบเทียบความสำคัญ หากสแตกว่างไม่มีตัวดำเนินการให้ push ลงสแตกถ้ามีตัวดำเนินการอยู่ให้เปรียบเที่ยบความสำคัญ ถ้าตัวดำเนินการที่เข้าไปใหม่มีความสำคัญน้อยกว่าให้ pop ตัวดำเนินการก่อนหน้าไปไว้ในผลลัพธ์แต่ถ้ามีความสำคัญมากกว่าก็ให้วางต่อไว้ในสแตกสำหรับเครื่องหมาย +-*/ เรียกว่า operatorสำหรับตัวอักษร ABCD เรียกว่า operand

วันอังคารที่ 28 กรกฎาคม พ.ศ. 2552

การบ้าน stdio.h และ iostream.h




05-22-07-2552

สรุปบทเรียน Linked List,Stack
สแตค (Stack)สแตคเป็นโครงสร้างข้อมูลที่มีลักษณะแบบลำดับ (sequential) คือการกระทำกับข้อมูลจะกระทำที่ปลายข้างเดียวกันที่ส่วนปลายสุดของสแตค การกระทำกับข้อมูลของสแตคประกอบไปด้วยการนำเข้าข้อมูลเข้า (PUSH) ที่ส่วนบนสุดของสแตค และการนำข้อมูลออก (POP) ที่ส่วนบนสุดของสแตคเช่นกัน ในการจะ Push ข้อมูลเข้าก็ต้องตรวจสอบด้วยว่าข้อมูลในสแตคเต็มหรือไม่ หากสแตคเต็มก็จะไม่สามารถ Push หรือนำข้อมูลเข้าได้ เช่นเดียวกับการ Pop ข้อมูลออกก็ต้องตรวจสอบด้วยว่ามีข้อมูลอยู่ในสแตคหรือไม่ หากไม่มีข้อมูลอยู่ในสแตคหรือสแตคว่าง (empty stack) ก็ไม่สามารถ pop ได้การนำข้อมูลเข้า-ออก จากสแตค (push , pop) จะมีลักษณะแบบเข้าหลัง ออกก่อน (LIFO : Last In , First Out) คือ ข้อมูลที่เข้าไปในสแตคลำดับหลังสุด จะถูกนำข้อมูลออกจากสแตคเป็นลำดับแรก

การแทนที่ข้อมูลของสแตก มีอยู่ 2 วิธี
1 การแทนที่ข้อมูลของสแตกแบบลิงค์ลิสต์
2 การแทนที่ข้อมูลของสแตกแบบอะเรย์

Stack Topเป็นการคักลอกข้อมูลที่อยู่บนสุดของสแตกโดยไม่มีการลบข้อมูลออกจากสแตก

Empty Stackเป็นการตรวจสอบการว่างของสแตกเพื่อไม่ให้เกิดการผิดพลาดในการนำข้อมูลออกจากสแตกที่เรียกว่า Stack UnderflowFull

Stackเป็นการตรวจสอบว่าสแตกเต็มหรือไม่เพื่อไม่ให้เกิดความผิดพลาดในการนำข้อมูลสแตกที่เรียกว่า Stack Overflow

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


ตัวอย่างของสแตก คือ "หลอดด้าย" หลอดด้ายที่เป็นม้วนจะมีการพันด้ายเส้นแรกจากด้านใน แล้วเวลาใช้จะต้องใช้เส้นที่อยู่หน้าสุดคือเส้นที่ม้วนเข้าไปที่หลังออกมาใช้ก่อน

04-15-07-2552

Linked List
ลิงค์ลิสต์เป็นการจัดเก็บชุดข้อมูลเชื่อมโยงต่อเนื่องกันไปตามลำดับ
ซึ่งอาจอยู่ในลักษณะแบบเชิงเส้นตรง (linear) หรือ ไม่เป็นเส้นตรง (nonlinear) ก็ได้
ซึ่งในลิสต์จะประกอบไปด้วยข้อมูลที่เรียกว่าโหนด (node)
ในหนึ่งโหนดจะประกอบด้วยส่วนของข้อมูลที่ต้องการจัดเก็บ
เรียกว่าส่วน Info และส่วนที่เป็นพอยน์เตอร์ที่ชี้ไปยังโหนดถัดไป (Link)
หรือชี้ไปยังโหนดอื่นๆที่อยู่ในลิสต์ หากไม่มีโหนดที่อยู่ถัดไป
ส่วนที่เป็นพอยน์เตอร์หรือ Link จะเก็บค่า NULL หรือสัญลักษณ์ ^


โครงสร้างข้อมูลแบบลิงค์ลิสต์จะแบ่งเป็น 2 ส่วน คือ1. Head Structure จะประกอบไปด้วย 3 ส่วน

ได้แก่ จำนวนโหนดในลิสต์ (Count)
พอยเตอร์ที่ชี้ไปยัง โหนดที่เข้าถึง (Pos)
และพอยเตอร์ที่ชี้ไปยังโหนดข้อมูล แรกของลิสต์ (Head)

2. Data Node Structure จะประกอบไปด้วยข้อมูล(Data) และพอยเตอร์ที่ชี้ไปยังข้อมูลตัวถัดไป

วันอังคารที่ 14 กรกฎาคม พ.ศ. 2552

dts01-07-52

pointer


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


การประกาศตัวแปรชนิดของตัวแปรพอยน์เตอร์

รูปแบบ

type *variable-name

type หมายถึง ชนิดของตัวแปร

* หมายถึง เป็นเครื่องหมายที่แสดงว่า ตัวแปรที่ตามหลังเครื่องหมายนี้เป็นตัวแปรพอยน์เตอร์

variable-name เป็นชื่อของตัวแปรที่ต้องการประกาศว่าเป็นชนิดของพอยน์เตอร์


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

1. เครื่องหมาย & เป็นเครื่องมายที่ใช้เมื่อต้องการให้เอาค่าตำแหน่งที่อยู่ชองตัวแปรที่เก็บไว้ในหน่วยความจำออกมาใช้

2. เครื่องหมาย * มีการใช้งาน 2 ลักษณะคือ

- ใช้ในการประกาศ parameter ว่าเป็นตัวแปรแบบพอยน์เตอร์ ว่าเป็นตัวแปรพอยน์เตอร์

- ใช้เป็น dereferencing operator จะใช้เมื่อต้องการนำค่าที

อยู่ในตำแหน่งทีตัวแปรพอยน์เตอร์นั้นชี้อยู่ออกมาแสดง


การใช้ตัวแปรพอยน์เตอร์กับอะเรย์

ตัวแปรพอยน์เตอร์จะใช้อ้างถึงค่าที่เก็บไว้ในตัวแปรชุดได้ ดังนี้

char str[80],*pl;

pl=str;

บรรทัดที่1 เป็นการประกาศว่า str เป็นตัวแปรชุด ชนิด charater 1 มิติ มีขนาดสมาชิก 80 สมาชิกและ pl เป็นตัวพอยน์เตอร์

บรรทัดที่2 เป้นการอ้างอิงถึงข้อมูลที่เก็บในตัวแปรชุด str โดยการนำตำแหน่งที่อยู่ของตัวแปร str[0] ซึ่งเป็นสมาชิกตัวแรกไปเก็บไว้ใน ตัวแปรพอยน์เตอร์ pl

วันอังคารที่ 30 มิถุนายน พ.ศ. 2552

การบ้าน structure

การบ้าน structure




struct speccom{

char mainboard[50];

char power_supply[20];

char sound_card[30];

char ram[20];

char harddisk[20];

char VGA[30];

char monitor[20];

float price;

}computer;

vdo

วันอาทิตย์ที่ 28 มิถุนายน พ.ศ. 2552

DTS 02-24-06-2552

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

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

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

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

ประวัติ



น.ส. รพีพร เอี่ยมเที่ยง (อิ๋ว)


ที่อยู่ปัจจุบัน : 14/53 ม.1 ซ.โรงน้ำแข็งสหกรณ์11 ต.บางกระสอ อ.เมือง ถ.สนามบินน้ำ จ.นนทบุรี 11000


เกิดวันที่ : 26 กรกฏาคม 2532




การศึกษาปัจจุบัน : มหาวิทยาลัยราชภัฏสวนดุสิต
ระดับปริญญาตรี คณะวิทยการจัดการ หลักสูตร บริหารธุรกิจ (คอมพิวเตอร์ธุรกิจ)


จบมาจาก : โรงเรียนศรีบุณยานนท์ จังหวัดนนทบุรี

เกรดเฉลีย : 2.98 สาย ศิลป์คำนวณ(อังกฤษ-คณิตศาสตร์)


งานอดิเรก : อ่านหนังสือ,เพลง