15 ตุลาคม 2552

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

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

  • สิ่งที่ได้รับจากการเรียน
- สามารถนำความรู้ในตอนเรียนไปใช้ในชีวิตประจำวัน ในการฝึกงานในสถานประกอบการต่าง ๆ

- สร้างความตรงต่อเวลาและการกระตือรือร้นให้กับตัวเองในการเรียนหรือในการทำงาน

- ฝึกการแต่งกายให้เหมาะสมต่อกาลเทศะ และการแต่งกายให้เรียบร้อยเหมาะสมถูกระเบียบ

- สามารถใช้ความรู้ที่เรียนมาทดสอบการนำไปใช้ในสถานที่จริงว่าเรามีวามสามารถระดับใด เกี่ยวกับ คอมพิวเตอร์ และภาษาอังกฤษ
- ทำให้เกิดความรับผิดชอบในงานที่ตนเองได้รับมอบหมาย

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

- สถานศึกษากับการประกันคุณภาพการศึกษาคุณลักษณะต่าง ๆและทราบถึงระบบกระบวนการงานต่างของการประกันคุณภาพเพื่อเป็นที่สังคมมั่นใจในการจัดการศึกษาของสถานศึกษา

- คุณธรรมจริยธรรมและธนาคารความดี แก่นักศึกษา คุณลักษณะที่พึงประสงค์ของนักศึกษาทั้งทางด้านร่างกาย

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

บันทึกรายรับและรายจ่ายที่ใช้จ่ายในชีวิตประจำวัน

- การพัฒนาบุคลิกภาพคุณลักษณะของนักศึกษาที่เกี่ยวกับบุคลิกดี มีน้ำใจ ใฝ่หาความรู้ เชิดชูองค์กร และความสามัคคี

- กิจกรรมแขนงคอมพิวเตอร์ การเรียนรู้เกี่ยวกับจุดเด่นงค์ประกอบต่าง ๆ ของ Business Intelligence

- กิจกรรมแขนงธุรกิจระหว่างประเทศ การเรียนรู้เกี่ยวกับ

การจัดการวัฒนธรรมข้ามชาติ

- กิจกรรมแขนงการตลาด เป็นการเรียนเกี่ยวกับเส้นทางสู่ความสำเร็จกับ Marketing

- ภาษาไทยในชีวิตประจำวัน การใช้ภาษาไทยให้เกิดประสิทธิภาพศิลปะการใช้ภาษาเพื่องานเขียน และเพื่อฝึกเขียนให้สวยงามอ่านง่ายและถูกต้องเหมาะส

11 ตุลาคม 2552

DTS_11 16/09/52

Summary B4 Final

สรุปเรื่อง Tree

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

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

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

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


สรุปเรื่อง Graph

การท่องไปในกราฟ
1.การค้นหาแบบกว้าง(Breadth-first Search)
1.1การค้นหาแบบกว้าง ในกราฟไม่มีทิศทาง รายชื่อโหนดที่พบจากการค้นหาแบบกว้าง มีได้หลายรายการขึ้นกับลำดับการเรียงโหนดประชิด
1.2การค้นหาแบบกว้าง ในกราฟแบบมีทิศทาง การค้นหาโหนดในกราฟทำได้ง่ายขึ้นถ้าใช้คิวเก็บลำดับของโหนดประชิดที่ต้องเยี่ยมต่อไป และใช้ตารางเก็บค่าโหนดประชิดของโหนดทุกโหนดในกราฟ

2.การค้นหาแบบลึก(Depth-first Search)จะต่างจากการค้นหาแบบกว้างตรงที่จุดเริ่มต้นที่จะไปเยี่ยมโหนดในกราฟมีหลายจุด จึงต้องกำหนดจุดเริ่มต้นสำหรับเยี่ยมเป็นจุดแรก การค้นหาแบบลึกใช้หลักการคล้ายแบบลำดับทรี

กราฟมีน้ำหนัก หมายถึง กราฟที่ทุกเอดจ์ มีค่าน้ำหนักกำกับซึ่งค่าน้ำหนักอาจสื่อถึงระยะทาง เวลา ค่าใช้จ่าย เป็นต้นนิยมนำไปใช้แก้ปัญหาหลักๆ 2 ปัญหา คือ
1.การสร้างต้นไม้ทอดข้ามน้อยที่สุด(Minimum Spanning Trees:MST)
1.1เรียงลำดับเอดจ์ ตามน้ำหนัก
1.2สร้างป่าที่ประกอบด้วยต้นไม้ว่างที่มีแต่โหนดและไม่มีเส้นเชื่อม
1.3เลือกเอดจ์ที่มีน้ำหนักน้อยที่สุดและยังไม่เคยถูกเลือกเลยถ้ามีน้ำหนักซ้ำกันหลายค่าในสุ่มมา 1 เส้น
1.4พิจารณาเอดจ์ที่เลือก ถ้านำมาประกอบในต้นไม้ทอดข้ามน้อยที่สุดแล้วเกิด วงรอบให้ตัดทิ้ง นอกนั้นให้นำมาประกอบเป็นเอดจ์ในต้นไม้ทอดข้ามน้อยที่สุด
5.ตรวจสอบเอดจ์ที่ต้องอ่านในกราฟ ถ้ายังอ่านไม่หมดให้ไปทำข้อ 3

2.การหาเส้นทางที่สั้นที่สุด(Shortest path) Dijkstra's Algorithm

ข้อกำหนดคือให้เซต S เก็บโหนดที่ผ่านได้และมีระยะทางห่างจากจุดเริ่มต้นสั้นที่สุด
ให้ W แทนโหนด นอกเซต Sให้ D แทนระยะทาง(distance)ที่สั้นที่สุดจากโหนดต้นทางไปโหนดใดๆ ในกราฟ โดยวิถีนี้ประกอบด้วย
โหนดในเซตS ถ้าไม่มีวิถี ให้แทนด้วยค่าอินฟินีตี๊ (Infinity)
2.1เริ่มต้นให้เซต S มีเพียงโหนดเดียว คือโหนดที่เป็นจุดเริ่มต้น
2.2คำนวณหาระยะทางจาก โหนดที่เป็นจุดเริ่มต้น ไปยังโหนดโหนดในกราฟ โดยยอมให้ใช้โหนด ในเซต S เป็นทางผ่านได้ถ้ามีมากกว่า 1 ทางให้เลือกทางที่สั้นที่สุด นำไปใส่ใน D ของแต่ละโหนด
2.3เลือกโหนด W ที่ห่างจากโหนดเริ่มต้นน้อยที่สุดไปไว้ใน S






11 กันยายน 2552

DTS_10 09/09/2552

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

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

ประเภทของการเรียงลำดับ

- การเรียงลำดับแบบเลือก (selection sort)เป็นการเลือกข้อมูลที่มี
ค่ามากหรือน้อยที่สุดไปเก็บไว้ในตำแหน่งที่ 1 แล้วก็ทำแบบเดิมไปเรื่อยๆฃ
นกระทั่งครบทุกข้อมูลก็จะได้ลำดับจากน้อยไปมากหรือมากไปน้อยตามที่ต้องการ
- การเรียงลำดับแบบฟอง (Bubble Sort)เป็นการเรียงลำดับโดยการเลือก
คู่ข้อมูลจากหน้าหรือหลังก็ได้แล้วก็เลือกว่าจะเรียงจากน้อยไปมากหรือมากไปน้อย
โดยการเปรียบเทียบข้อมูลที่เลือกทั้งสองตัวแล้วสลับตำแหน่งกันเพื่อจะได้นำ
ไปเปรียบเที่ยบในตำแหน่งต่อไปจนครบ
- การเรียงลำดับแบบเร็ว (quick sort)
-การเรียงลำดับแบบแทรก (insertion sort)เป็นการเรียงลำดับข้อมูล
แบบเลือกคู่ข้อมูลจากหน้าหรือหลังก็ได้แล้วนำข้อมูลถัดไปมาเปรียบเทียบกัน
ระหว่างข้อมูลทั้งสองว่าจะวางในตำแหน่งใดทำจนครบทุกข้อมูล
- การเรียงลำดับแบบฐาน (radix sort)เป็นการเรียงลำดับโดยพิจารณา
จากฐานตัวเลขโดยเริ่มจาก 0 ถึง9 โดยรอบแรกให้พิจารณาในหลักหน่วยและ
เรียงลำดับหลักไปจนครบตามจำนวนข้อมูลก็จะได้เลขที่เรียงลำดับโดยอัตโนมัติ

DTS_ 9 02/09/2552

สรุปเรื่อง ทรี Tree (ต่อ)

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

ไบนารีเซิร์ชทรี


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

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

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

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

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

ค.กรณีโหนดที่ดึงออกมีทั้งทรีย่อยทางซ้ายและทรีย่อยทางขวาต้อง
เลื่อกมาจากทรีย่อยทางซ้ายหรือทรีย่อยทางขวาก็ได้
-ถ้าโหนดที่มาแทนที่เป็นโหนดที่เลือกจากทรีย่อยทางซ้ายต้องเลือก
โหนดทีมีค่ามากที่สุดในทรีย่อยทางซ้ายนั้น
-ถ้าโหนดที่มีจะมาแทนที่เป็นโหนดที่เลือกมาจากทรีย่อยทางขวา
ต้องเลือกโหนดที่มีค่าน้อยที่สุดในทรีย่อยทางขวา


เรื่อง Graph

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

นิยามของกราฟ

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

ตัวอย่างรูปแบบของกราฟ


โหนดสองโหนดในกราฟแบบไม่มีทิศทางถือว่าเป็นโหนดที่ใกล้
กัน (Adjacent) ถ้ามีเอ็จเชื่อมจากโหดนที่หนึ่งไปโหนดที่สอง
กราฟ(ก) แสดงกราฟที่มีลักษณะต่องเนื่อง (Connected)
เป็นกราฟที่มีเส้นทางเชื่อมจากโหนดใดๆไปยังโหนดอื่นเสมอ


26 สิงหาคม 2552

DTS_8 26/08/2552

สรุปผลเรียนเรื่อง ทรี (Tree)

ทรี (Tree) เป็นโครงสร้างข้อมูลที่ความสัมพันธ์ระหว่า'

โหนดจะมีความสัมพันธ์ลดหลั่นกันเป็นลำดับชั้น (Hierarchical Relationship)
เช่นแผนผังองค์ประกอบของหน่วยงานต่างๆ โครงสร้างสารบัญหนังสือ เป็นต้น

ความสัมพันธ์ของโหนดใน Tree

ต่ละโหนดจะมีความสัมพันธ์กับโหนดในระดับที่ต่ำลงมาหนึ่งระดับได้
หลายๆ โหนด เรียกโหนดดังกล่าวว่า โหนดแม่ (Parent or Mother Node)
โหนดที่อยู่ต่ำกว่าโหนดแม่อยู่หนึ่งระดับ เรียกว่า โหนดลูก(Child Node)
โหนดทีอยู่ในระดับสูงสุดและไม่มีโหนดแม่ เรียกว่า โหนดราก(Root Node)
โหนดที่มีโหนดแม่เป็นโหนดเดียวกัน เรียกว่า โหนดพี่น้อง(Siblings)
โหนดที่ไม่มีโหนดลูก เรียกว่า โหนดใบ(Leave Node)
เส้นเชื่อมแสดงความสัมพันธ์ระหว่างโหนดสองโหนด เรียกว่า กิ่ง(Branch
)


นิยามของทรี(Tree)

ทรี คือ กราฟที่ต่อเนื่องโดยไม่มีวงจรปิด(loop)ในโครงสร้าง โหนดสอง
โหนดใดๆ ในทรีต้องมีทางติดต่อกัน ทางเดียวเท่านั้น และทรีที่มี N โหนด
ต้องมีกิ่งทั้งหมด N-1เส้น
ทรีประกอบด้วยสมาชิกที่เรียกว่า โหนด โดยที่ว่าง ไม่มีโหนดใดๆ เรียกว่า
นัลทรี(Null Tree) และถ้ามีโหนดหนึ่งเป็นโหนดราก ส่วนที่เหลือจะแบ่ง
เป็นทรีย่อย (Sub Tree)


นิยามที่เกี่ยวกับทรี (Tree)

1.ฟอร์เรสต์ (Forest) หมายถึง กลุ่มของทรีที่เกิดจากการเอาโหนดราก
ของทรีออก หรือ เซตของทรีที่แยกออกจากกัน(Disjoint Trees)
2.ทรีที่มีแบบแผน (Ordered Tree) หมายถึง ทรีที่โหนดต่างๆในทรีนั้น
มีความสัมพันธ์ที่แน่นอน เช่น ไปทางขวา ไปทางซ้าย เป็นต้น
3.ทรีคล้าย (Similar Tree) คือ ทรีที่มีโครงสร้างเหมือนกัน หรือทรีที่มี
รูปร่างของทรีเหมือนกัน โดยไม่คำนึ่งถึงข้อมูลทีอยู่ในแต่ละโหนด
4.ทรีเหมือน (Equivalent Tree) คือ ทรีที่เหมือนกันโดยสมบูรณ์
โดยต้องเป็นทรีที่คล้ายกันและแต่ละโหนดในตำแหน่งเดียวกันมีข้อมูล เหมือนกัน
5.กำลัง (Degree) หมายถึง จำนวนทรีย่อยของในโหนดนั้นๆ
6.ระดับของโหนด (Level of Node) คือ ระยะทางในแนวดิ่งของโหนด
นั้นๆ ที่อยู่ห่างจากโหนดราก เมื่อกำหนดให้ โหนดรากของทรีนั้นอยู่
ระดับ 1และกิ่งแต่ละกิ่งมีความเท่ากันหมด คือยาวเท่ากับ 1 หน่วย
ซึ่งระดับของโหนดจะเท่ากับจำนวนกิ่งที่น้อยที่สุดจากโหนดรากไปยัง
โหนดใดบวกด้วย 1และจำนวนเส้นทางตามแนวดิ่งของโหนดใดๆ
ซึ่งห่างจากโหนดราก เรียกว่า ความสูง (Height) หรือความลึก (Depth)


การแทนที่ทรีในหน่วยความจำหลัก

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

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

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

มีค่าเป็นNull
สรุป ไบนารีทรีก็คือ โครงสร้างทรีที่แต่ละโหนดมีจำนวนโหนดลูก

ไม่เกินสองหรือแต่ละโหนดมีจำนวนทรีย่อยไม่เกินสอง
ไบนารีทรีที่สมบูรณ์ ไบนารีทรีที่ทุกๆโหนดมีทรีย่อยทางซ้าย
และทรีย่อยขวา ยกเว้นโหนดใบ และโหนดใบทุกโหนดจะต้อง
อยู่ที่ระดับเดียวกันสามารถคำนวณจำนวนโหนดทั้งหมดในไบนารีทรี
แบบสมบูรณ์ได้ ถ้ากำหนดให้ L คือระดับของโหนดใดๆ และ
N คือจำนวนโหนดทั้งหมด ทั้งหมดในทรีจะได้ว่า
ระดับ 1 มีจำนวนโหนด 1 โหนด
ระดับ 2 มีจำนวนโหนด 3 โหนด
ระดัย 3 มีจำนวนโหนด 7 โหนด


การแปลงทรีทั่วไปให้เป็นไบนารีทรี

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


การท่องไปในไบนารีทรี

1.การท่องไปแบบพีออร์เดอร์(Preorder Traversal)
เป็นการเดินเข้าไปเยือนโหนดต่างๆใสทรีด้วยวิธี NLR มีขั้นตอนการเดิน
ดังต่อไปนี้
1.1เยื่อนโหนดราก
1.2ท่องไปในทรีย่อยทางซ้ายแบบพรีออร์เดอร์
1.3ท่องไปในทรีย่อยทางขวาแบบพรีออร์เดอร์
2.การท่องไปอบบอินออร์เดอร์(Inorder Traversal) เป็นการเดินเข้าไปเยือนโหนดต่างๆ

ในทรีด้วยวิธี LNR มีขั้นตอนการเดินดังต่อไปนี้
2.1ท่องไปในทรีย่อยทางซ้ายแบบอินออร์เดอร์
2.2เยื่อนโหนดราก
2.3ท่องไปในทรีย่อยทางขวาแบบอินออร์เดอร์
3.การท่องโพสออร์เดอร์(Postorder Traversal) เป็นการเดินเข้าไปเยื่อนโหนดต่างๆ

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

05 สิงหาคม 2552

DTS_7 5/08/2552

สรุปผลเรียนเรื่อง คิว (queue)

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

การทำงานของคิว (queue)ประกอบด้วย
1.การใส่สมาชิกตัวใหม่ลงในคิวเรียกว่า Enqueue และการนำข้อมูลออกจากคิวเรียกว่า Dequeue
2.การนำข้อมูลที่อยู่ตอนต้นของคิวมาแสดงเรียกว่า Queue Front แต่จะไม่ทำการนำข้อมูลออกจากคิว และการนำข้อมูลที่อยู่ตอนท้ายของคิวมาแสดงเรียกว่า Queue Rear และจะไม่เพิ่มข้อมูลไปในคิวเช่นกัน

การแทนที่ข้อมูลของคิว (queue)
1.การแทนที่ข้อมูลแบบลิงค์ลิสตจะประกอบไปด้วย2ส่วนคือ
1.1Head Node จะประกอบไปด้วย3ส่วนคือ พอยเตอร์จำนวน2ตัวคือFront และ Rear กับจำนวนสมาชิกในคิว
1.2Data Node จะประกอบไปด้วยข้อมูล Data และพอยเตอร์ที่่ชี้ไปยังข้อมูลตัวถัดไป
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

02 สิงหาคม 2552

DTS_6 29/07/2552

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

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

การแทนที่ข้อมูลของสแตกแบบลิงค์ลิสต์ จะประกอบไปด้วย 2 ส่วน คือ
1. Head Node
2. Data Node

การดำเนินการเกี่ยวกับสแตก ได้แก่
1. Create Stack จัดสรรหน่วยความจำให้แก่ Head Nodeและส่งค่าตำแหน่งที่ชี้ไปยัง Head ของสแตกกลับมา
2. Push Stack การเพิ่มข้อมูลลงไปในสแตก
3. Pop Stack การนำข้อมูลบนสุดออกจากสแตก
4. Stack Top เป็นการคัดลอกข้อมูลที่อยู่บนสุดของสแตก

โดยไม่มีการลบข้อมูลออกจากสแตก
5. Empty Stackเป็นการตรวจสอบการว่างของสแตก เพื่อไม่ให้เกิดความผิดพลาดในการนำข้อมูลออกจากสแตกที่เรียกว่า Stack Underflow
6. Full Stackเป็นการตรวจสอบว่าสแตกเต็มหรือไม่ เพื่อไม่ให้เกิดความผิดพลาดในการนำข้อมูลเข้าสแตกที่ เรียกว่า Stack Overflow
7. Stack Countเป็นการนับจำนวนสมาชิกในสแตก
8. Destroy Stackเป็นการลบข้อมูลทั้งหมดที่อยู่ในสแตก


การคำนวณนิพจน์ทางคณิตศาสตร์
สามารถเขียนได้ 3 รูปแบบ คือ
1. นิพจน์ Infix นิพจน์รูปแบบนี้ operatorจะอยู่ตรงกลางระหว่างตัวถูกดำเนินการ 2 ตัว
2. นิพจน์ Postfix นิพจน์รูปแบบนี้ จะต้องเขียนตัวถูกดำเนินการตัวที่ 1 และ 2 ก่อน แล้วตามด้วย operator
3. นิพจน์ Prefix นิพจน์รูปแบบนี้ จะต้องเขียน operatorก่อนแล้วตามด้วยตัวถูกดำเนินการตัวที่ 1 และ 2
สำหรับ opertor คือ +-*/ operand คือ ABCหรือตัวแปรอื่นๆ

ตัวอย่างการเขียนนิพจน์ทางคณิตศาสตร์ทั้ง3แบบคือ
1.แบบ infix คือ A+B-C
2.แบบ postfix คือ AB+C-
3.แบบ prefix คือ +AB-C

28 กรกฎาคม 2552

DTS_ 05 22/07/2552

สรุป Linked List

กระบวนงานและฟังก์ชั่นที่ใช้ดำเนินงานพื้นฐาน ต่อ
5. กระบวนงาน Traverse หน้าที่ ท่องไปในลิสต์เพื่อเข้าถึงและประมวลผลข้อมูล นำเข้าลิสต ผลลัพธ์ ขึ้นกับการประมวลผล เช่นเปลี่ยนแปลงค่าใน node , รวมฟิลด์ในลิสต์, คำนวณค่าเฉลี่ยของฟิลด์ เป็นต้น
6. กระบวนงาน Retrieve Nodeหน้าที่ หาตำแหน่งข้อมูลจากลิสต์ข้อมูลนำเข้าลิสต์ผลลัพธ์ ตำแหน่งข้อมูลที่อยู่ในลิสต์
7. ฟังก์ชั่น Empty List หน้าที่ ทดสอบว่าลิสต์ว่างข้อมูลนำเข้า ลิสต์ผลลัพธ์ เป็นจริง ถ้าลิสต์ว่างเป็นเท็จ ถ้าลิสต์ไม่ว่าง
8. ฟังก์ชั่น fullest หน้าที่ ทดสอบว่าลิสต์เต็มหรือไม่ข้อมูลนำเข้าลิสต์ผลลัพธ์ เป็นจริง ถ้าหน่วยความจำเต็ม เป็นเท็จ ถ้าสามารถมีโนดอื่น
9. ฟังก์ชั่น list countหน้าที่ นับจำนวนข้อมูลที่อยู่ในลิสต์ข้อมูลนำเข้าลิสต์ผลลัพธ์ จำนวนข้อมูลที่อยู่ในลิสต์
10. กระบวนงาน destroy list หน้าที่ ทำลายลิสต์ข้อมูลนำเข้า ลิสต์ผลลัพธ์ ไม่มีลิสต์

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

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

การบ้าน
ยกตัวอย่างในการใช้ชีวิตประจำวันเกี่ยวกับ Stack


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

22 กรกฎาคม 2552

DTS_04 15/07/2552

เรื่อง Linked List

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

โครงสร้างข้อมูลแบบลิงค์ลิสต์

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

กระบวนงานและฟังก์ชั่นที่ใช้ดำเนินงานพื้นฐาน

1. กระบวนงาน Create Listหน้าที่ สร้างลิสต์ว่าง ผลลัพธ์ ลิสต์ว่าง
2. กระบวนงาน Insert Node หน้าที่เพิ่มข้อมูลลงไปในลิสต์บริเวณตำแหน่งที่ต้องการข้อมูลนำเข้า ลิสต์ ข้อมูล และตำแหน่ง ผลลัพธ์ ลิสต์ที่มีการเปลี่ยนแปลง
3. กระบวนงาน Delete Node หน้าที่ ลบสมาชิกในลิสต์บริเวณตำแหน่งที่ต้องการข้อมูล นำเข้า ข้อมูลและตำแหน่งผลลัพธ์ลิสต์ที่มีการเปลี่ยนแปลง
4. กระบวนงาน Search list หน้าที่ ค้นหาข้อมูลในลิสต์ที่ต้องการ ข้อมูลนำเข้าลิสต์ ผลลัพธ์ ค่าจริงถ้าพบข้อมูล ค่าเท็จถ้าไม่ พบข้อมูล


การบ้าน

เขียนโปรแกรมเปรียบเทียบการใช้ฟังก์ชั่น Stdio.h กับ iostream.h แต่ผลลัพธ์ออกมาต้องเหมือนกัน

#include

main()
{
char name[30];
char surname[40];
int high;
char sex[10];
printf("Name :");
scanf("%s",&name);
printf("Surame :");
scanf("%s",&surname);
printf("High :");
scanf("%d",&high);
printf("Sex :");
scanf("%s",&sex);
if(sex=="male")
{
printf("Name : %s\n",name);
printf("Surname : %s\n",surname);
printf("High : %d\n",high-100);
printf("Sex : %s\n",sex);
}
else {
printf("Name : %s\n",name);
printf("Surname : %s\n",surname);
printf("High : %d\n",high-110);
printf("Sex : %s\n",sex);
return 0;
}
}


#include
main()
{
char name[30];
char surname[40];
int high;
char sex[10];
cout<<"Name :"; cin>>name;
cout<<"Surame:"; cin>>surname;
cout<<"High :"; cin>>high;
cout<<"Sex :"; cin>>sex;
if(sex=="male")
{
cout<<"Name : "<



14 กรกฎาคม 2552

DTS_ 03 01/07/2552

สรุปเนื้อหาบทเรียน

เรื่อง Pointer และ Set and String

Pointer เป็นตัวแปรที่ทำหน้าที่เก็บตำแหน่งที่อยู่ของตัวแปร สามารถอ้างอิงกลับไปกลับมาได้ มีขนาด 2 ไบต์เท่ากันหมด ไม่ว่าจะเป็น char, int, float หรืออื่นๆ ในการประกาศตัวแปร pointer จะต้องนำหน้าด้วยเครื่องหมาย
* เช่น int*x // เป็นตัวแปร pointer เครื่องหมาย & เป็นเครื่องหมายที่ บอกตำแหน่ง
ที่อยู่ของตัวแปรที่เก็บไว้ในหน่วยความจำ
** ในกรณีที่ตัวแปรใดมีเครื่องหมาย & นำหน้าจะไม่สามารถนำมาคำนวณได้

ตัวอย่าง

int *ptr,count // เป็นการประกาศตัวแปร ptr เป็นตัวแปร pointer และประกาศตัวแปร count
count = 300 // เป็นการกำหนดค่าให้กับ count มีค่าเท่ากับ 300
ptr = &count // เป็นการกำหนดค่าให้กับ ptr มีค่าเท่ากับตำแหน่งที่อยู่ของ count
** ถ้าต้องการทราบว่า *ptr มีค่าเท่าไหร่หาได้จาก ณ ตำแหน่งที่ ptr เก็บอยู่
คือตำแหน่งที่เท่าไหร่แล้วดูว่าที่ตำแหน่งนั้นมีค่าเท่ากับเท่าไหร่ Set เป็นโครงสร้างที่ข้อมูลแต่ละตัวไม่มีความสัมพันธ์กันเลย ตัวดำเนินการของเซ็ต ประกอบด้วย

1. set intersection

2. set union

3. set difference

Set and String

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

โครงสร้างข้อมูลแบบสตริง

สตริงเป็นโครงสร้างข้อมูลที่เป็นการรวบรวมโครงสร้างข้อมูลคาร์แรคเตอร์ (Character)ซึ่งเป็นตัวอักษรและสัญลักษณ์ (Symbol) ต่าง ๆ เป็นชนิดข้อมูลที่ถูกใช้งานมากชนิดหนึ่ง ภาษาเขียนโปรแกรมหลายภาษาจะกำหนดให้มาใช้งานได้ทันที

30 มิถุนายน 2552

DTS_02 24/06/2552

การบ้านโครงสร้างข้อมูล


#include
#include
main()
{
struct account
{
char name[30];
char surname[40];
int age;
char sex[20];
int tele;
char study[40];
char faculty[30];}
account1;

// set var
strcpy(account1.name,"nungruethai");
strcpy(account1.surname,"petchana");
account1.age = 22;
strcpy(account1.sex,"female");
account1.tele,"0890638312";
strcpy(account1.study,"Suan Dusit Rajabhat University");
strcpy(account1.faculty,"Management science,Business computer Program");

// outputprintf("This is my accout\n\n");
printf("name %s\n",account1.name);
printf("surname%s\n",account1.surname);
printf("age %d\n",account1.age);
printf("sex %s\n",account1.sex);
printf("telephone number %d\n",account1.tele);
printf("university %s\n",account1.study);
printf("faculty of %s\n",account1.faculty);
}

สรุป Lecture 2


เรื่อง Array and Record

Array มีลักษณะคล้ายเซ็ตในคณิตศาสตร์ประกอบด้วยสมาชิกที่มี จำนวนคงที่ มีรูปแบบข้อมูลเป็นแบบเดียวกัน การกำหนดอะเรย์จะต้องกำหนด พร้อม subscrip การกำหนด แต่ละตัวจะประกอบด้วย ค่าต่ำสุด เรียกว่า ขอบเขตล่าง (lower bound) ค่าสูงสุด เรียกว่า ขอบเขตบน (upper bound) ค่าที่ใช้อ้างอิงถึงสมาชิกจะต้องมี lower bound ≤ subscript ≤ upperbound

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

Structure คือ โครงสร้างที่สมาชิกแต่ละตัวมีประเภทข้อมูลแตกต่างกันได้ โดยที่ใน structure อาจมีสมาชิกเป็นจำนวนเต็ม ทศนิยม อักขระ อะเรย์หรือ พอยเตอร์
การประกาศตัวแปรชนิดโครงสร้างstruct name {type var-1;type var-2;.....type var-n;} struct-variable;struct คือ คำที่ใช้กำหนดโครงสร้างข้อมูลต้องมีเสมอ name คือ ชื่อของโครงสร้างข้อมูลที่จะสร้างขึ้นtype var-1,type var-2 คือชื่อตัวแปรในกลุ่มโครงสร้างข้อมูลstruct-variable คือชื่อของตัวแปรชนิดโครงสร้างที่ต้องการสร้างขึ้นจะมีลักษณะโครงสร้างภายในเหมือนกับโครงสร้างข้อมูลที่กำหนด

24 มิถุนายน 2552

ประวัติส่วนตัว



นางสาวหนึ่งฤทัย เพชรชนะ

MSS NUNGRUETHAI PETCHANA

รหัสนักศึกษา 50152792045

หลักสูตร การบริหารธุรกิจ ( คอมพิวเตอร์ธุรกิจ )

คณะวิทยาการจัดการ

มหาวิทยาลัยราชภัฎสวนดุสิต

E-mail address :
U50152792045@Gmail.com

Tel. 089-0638312



DTS 01 - 24 / 06 / 2009