วันอาทิตย์ที่ 11 กันยายน พ.ศ. 2559

โครงสร้างข้อมูลอาร์เรย์



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

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

อาร์เรย์หนึ่งมิติ
             อาร์เรย์หนึ่งมิติ (One-dimension Array) มีลักษณะที่ง่ายที่สุดเป็นตารางที่มีเพียงแถวเดียว บางครั้งก็เรียกว่าเว็กเตอร์ ดังในรูปที่ 2.1 เป็นอาร์เรย์หนึ่งมิติชื่อ Vec ที่ประกอบด้วยสมาชิก N ตัว

   
Vec(1)
Vec(2)
Vec(I)
Vec(N)
รูปที่ 2.1 ตัวอย่างเป็นอาร์เรย์หนึ่งมิติชื่อ Vec มีสมาชิก N ตัว

                    อาร์เรย์หนึ่งมิติจะมีดัชนีเพียงตัวเดียวใช้อ้างไปยังตำแหน่งของแต่ละสมาชิกในอาร์เรย์ซึ่งมีค่าเป็นลำดับ สมาชิกแต่ละตัวจะถูกแยกแยะตัวชื่ออาร์เรย์ตามด้วยดัชนีที่อยู่ในวงเล็บดังในรูป ดังนั้น เมื่อต้องการใช้อาร์เรย์ก็เพียงแต่กำหนดชื่อและใช้ดัชนีอ้างไปยังแต่ละสมาชิก การเขียนอัลกอริทึมจึงใช้โครงสร้างควบคุมการทำงานแบบวนลูปเพื่อใช้ควบคุมสมาชิกแต่ละตัว
การกำหนดอาร์เรย์หนึ่งมิติ
   การกำหนดอาร์เรย์หนึ่งมิติจะมีรูปแบบที่กำหนดไว้เป็นดังนี้
   V(L:U) = { V(I) }
   สำหรับ I = L,L+1,…,U-1,U ซึ่งสมาชิกแต่ละตัว V(I) จะมีโครงสร้างข้อมูล T หมายความว่าอาร์เรย์ V มีสมาชิกที่มีโครงสร้างข้อมูล T และมีดัชนีมีค่าเริ่มจาก L ไปสิ้นสุดที่ U จะได้ช่วงดัชนีจาก L ไป U เท่ากับ U-L+1 ถ้าหากให้อาร์เรย์ V(1:N) จะได้ช่วงดัชนีเท่ากับ N ในการกำหนดค่าให้กับ L อาจเป็น 0 หรือเป็นค่าติดลบได้ เช่น V(-5:5) และมีช่วงดัชนีเท่ากับ 5-(-5)+1 = 11

อาร์เรย์สองมิติ
           อาร์เรย์สองมิติ (Tow-dimension Array) เป็นอาร์เรย์ที่สมาชิกมีโครงสร้างข้อมูลอาร์เรย์ ลักษณะเป็นตารางที่มีทั้งแถว และคอลัมน์ หรือเรียกว่าแมตทริก ดังในรูปที่ 2.1 เป็นอาร์เรย์สองมิติชื่อ Matrix ที่ประกอบด้วยสมาชิกใยแถว M ตัว แต่ละสมาชิกจะมีสมาชิกในคอลัมน์ N ตัว ก็จะได้เป็นตารางขนาด M ต่อ N
          อาร์เรย์สองมิติจะใช้ดัชนีสองตัวเพื่ออ้างไปยังตำแหน่งของแต่ละสมาชิกแยกกัน โดยดัชนีตัวแรกใช้กับสมาชิกในแถว ส่วนตัวที่สองใช้กับสมาชิกในคอลัมน์ ดังนั้นสมาชิกอาร์เรย์ Matrix(I,J) จึงอยู่ในตำแหน่งแถวที่ I ตำแหน่งคอลัมน์ที่ J อาร์เรย์ Matrix จะเรียกว่าอาร์เรย์มิติ M ต่อ N แต่ละแถวมีสมาชิกเท่ากับ N แต่ละคอลัมน์มีสมาชิกเท่ากับ M จะได้สมาชิกทั้งหมดเท่ากับ M*N
        การเขียนอัลกอริทึมเพื่อใช้อาร์เรย์สองมิติจะนำโครงสร้างควบคุมการทำงานแบบวนลูปมาใช้ 2 ลูป โดยส่วนใหญ่จะให้ลูปแรกอยู่ด้านนอกใช้ควบคุมสมาชิกในแถว ส่วนลูปที่สองซ้อนอยู่ภายในลูปแรกใช้ควบคุมสมาชิกในคอลัมน์

อาร์เรย์หลายมิติ
           การสร้างอาร์เรย์อาจเป็น สามมิติ สี่มิติ หรือมากกว่านั้นเรียกว่าอาร์เรย์หลายมิติหรือ N- มิติ ดัชนีและช่วงจำนวนสมาชิกก็จะเพิ่มมากขึ้นตามจำนวนมิติ อาร์เรย์ N-มิติจะใช้ค่าดัชนี N ตัวอ้างไปยังตำแหน่งสมาชิกแต่ละตัว การกำหนดอาร์เรย์ N-มิติจะเป็นดังนี้
M (L1:U1,L2:U2, …,Ln :Un)
แต่ละสมาชิกของอาร์เรย์จะถูกอ้างถึงโดยกำหนดเป็น M(I1,I2,…,In) ซึ่งแต่ละดัชนีที่
Ik ≤ Ik ≤ Uk สำหรับ k = 1,2,…,N จำนวนสมาชิกทั้งในอาร์เรย์ M เท่ากับ
(U1 – L1 +1) * (U2 – L2 +1) * … * (Un – Ln +1)

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

การเก็บอาร์เรย์หนึ่งมิติในหน่วยความจำ
        เมื่อพิจารณาพื้นที่ในหน่วยความจำที่จะเก็บอาร์เรย์หนึ่งมิติ เช่น อาร์เรย์ Vec ในรูปที่ 2.1 ซึ่งมีดัชนีที่ขอบเขตล่างเท่ากับ 1 ส่วนขอบเขตบนเท่ากับ N วิธีที่จะเก็บอาร์เรย์หนึ่งมิติในหน่วยความจำก็คือ ลำดับของสมาชิกในทางกายภาพ เรียงเป็นแบบเดียวกับลำดับของสมาชิกในทางตรรกะ ดังนั้น พื้นที่จัดเก็บสมาชิก Vec(I+1) จะอยู่ต่อเนื่องจากพื้นที่ จัดเก็บสมาชิก Vec(I) สำหรับ
I = 1,…,N-1 ในการคำนวณหาแอดเดรสเริ่มต้นของสมาชิก Vec(I) จำเป็นต้องทราบในเรื่องต่อไปนี้
            1. ตำแหน่งแอดเดรสเริ่มต้นของพื้นที่หน่วยความจำที่จะเก็บอาร์เรย์ เรียกว่าตำแหน่งเริ่มต้น (Base Location)
            2. ขนาดพื้นที่เก็บแต่ละสมาชิกของอาร์เรย์ กำหนดให้มีขนาด S ไบต์
การหาตำแหน่งแอดเดรสของสมาชิกอาร์เรย์ Vec ตัวที่ I จะได้ ดังนี้
B + (I – 1)*S
หรือกรณีที่ใช้ขอบเขตล่าง L เป็นดังนี้
B + (I – L)*S
          เช่น มีอาร์เรย์ Vec(4:10) และต้องการหาตำแหน่งแอดเดรสของสมาชิก Ves(6) โดยตำแหน่งเริ่มต้นอยู่ที่แอดเดรส 2500 และแต่ละสมาชิกมีขนาด 80 ไบต์ ก็จะได้ตำแหน่งแอดเดรสอยู่ที่ 250 + (6 – 4) * 80 = 2660


แบบทดสอบ


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

2. ถ้าตัวแปร A เป็นตัวแปรแบบอาร์เรย์แล้ว กลุ่มข้อมูลใดสามารถจัดเก็บตัวแปร A ได้
ก. 25 , 60 , boy , T
ข. A , B , C , D
ค. Dog , cat 2.50
ง. True , Somsri , 10.25

3. จากโปรแกรมต่อไปนี้ Data มีผลลัพธ์เป็นเท่าไร
Program Test 1
Var Data : integer
Begin
Data : = 60;
Data : = 20;
Writeln (Data);
End

ก. 60
ข. 20
ค. 80
ง. 40

4. ข้อใดต่อไปนี้ที่ผู้เขียนโปรแกรมควรกำหนดเป็นตัวแปรอาร์เรย์
ก. I เก็บค่านับรอบของลูป จำนวน 20 รอบ
ข. Score เก็บค่าคะแนนนักศึกษา 20 คน
ค. Mean เก็บคะแนนเฉลี่ยนักศึกษา 20 คน
ง. Max เก็บคะแนนนักศึกษาที่มีคะแนนสูงสุดจาก 20 คน

5. ตัวแปรอาร์เรย์ต่างกับตัวแปรเดี่ยวอย่างไร
ก. ตัวแปรอาร์เรย์เก็บค่าในฮาร์ดดิสก์ตัวแปรเดี่ยวเก็บค่าใน RAM
ข. ตัวแปรอาร์เรย์เก็บค่าแบบ Numeric ตัวแปรเดี่ยวเก็บค่าแบบ String
ค. ตัวแปรอาร์เรย์เก็บค่าคงที่ ตัวแปรเดี่ยวเก็บค่าเปลี่ยนแปลงได้
ง. ตัวแปรอาร์เรย์เก็บค่าได้หลายค่า ตัวแปรข้อมูลเดี่ยวเก็บค่าได้เพียงค่าเดี่ยว

6. ประกาศตัวแปร A:array[1..20] of integer; ตัวแปรอาร์เรย์ชุดที่ประกาศนี้สามารถเก็บค่าได้ทั้งหมดกี่ค่า
ก. 1 ค่า
ข. 19 ค่า
ค. 20 ค่า
ง. 21 ค่า
7. J : Array [1..100, 1..5] of integer; ตัวแปรอาร์เรย์ J ประกอบด้วยสมาชิกกี่ค่า
ก. 5
ข. 100
ค. 50
ง. 500

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

9. ถ้าประกาศตัวแปรอาร์เรย์ดังนี้ Data : array [1…5] of integer; ข้อมูลใดไม่สามารถเก็บในอาร์เรย์ชุดนี้ได้
ก. 500 20 40 25 2.5
ข. 601 2 0 13 100
ค. 1 0 0 0 1
ง. 0 0 0 0 0

10. การประกาศตัวแปรอาร์เรย์เพื่อใช้งานต้องประกอบด้วยอะไรบ้าง
ก. ชื่ออาร์เรย์ ชนิดข้อมูล
ข. ชื่ออาร์เรย์ ค่าสูงสุดและค่าต่ำสุด ชนิดข้อมูล
ค. ชื่ออาร์เรย์ ค่าสูงสุดและค่าต่ำสุด มิติของอาร์เรย์ ชนิดข้อมูล
ง. ชื่ออาร์เรย์ ค่าสูงสุดและค่าต่ำสุด มิติของอาร์เรย์ ชนิดข้อมูล จำนวนสมาชิก

ผังงาน (Flowchart)



ผังงาน (Flowchart)
                คือ รูปภาพ (Image) หรือสัญลักษณ์(Symbol) ที่ใช้เขียนแทนขั้นตอน คำอธิบาย ข้อความ หรือคำพูด ที่ใช้ในอัลกอริทึม (Algorithm)เพราะการนำเสนอขั้นตอนของงานให้เข้าใจตรงกัน ระหว่างผู้เกี่ยวข้อง ด้วยคำพูด หรือข้อความทำได้ยากกว่าการใช้ผังงาน
                ผังงาน เป็นเครื่องมือแสดงขั้นตอน หรือกระบวนการทำงาน โดยใช้สัญลักษณ์ที่เป็นมาตรฐานเดียวกัน ซึ่งในสัญลักษณ์จะมีข้อความสั้น ๆ อธิบายข้อมูลที่ต้องใช้ ผลลัพธ์ หรือคำสั่งประมวลผลของขั้นตอนนั้น ๆ และเชื่อมโยงขั้นตอนเหล่านั้นด้วยเส้นที่มีลูกศรชี้ทิศทางการทำงานตั้งแต่เริ่มต้นจนจบกระบวนการ
ผังงานแบ่งได้ 2 ประเภท
1. ผังงานระบบ (System Flowchart) คือ ผังงานที่แสดงขั้นตอนการทำงานในระบบอย่างกว้าง ๆ แต่ไม่เจาะลงในระบบงานย่อย
2. ผังงานโปรแกรม (Program Flowchart) คือ ผังงานที่แสดงถึงขั้นตอนในการทำงานของโปรแกรม ตั้งแต่รับข้อมูล คำนวณ จนถึงแสดงผลลัพธ์
               การโปรแกรมแบบมีโครงสร้าง หรือ การโปรแกรมโครงสร้าง คือ การโปรแกรมที่ประกอบด้วยกระบวนการ 3 รูปแบบ ได้แก่ การทำงานแบบตามลำดับ(Sequence) การเลือกกระทำตามเงื่อนไข(Decision) และ การทำซ้ำ(Loop) มีตำราหลายเล่มแยกการเลือกตามเงื่อนไขเป็น if กับ select case หรือ การทำซ้ำแยกได้เป็น do while กับ do until แต่ก็ยังนับได้ว่าการเขียนโปรแกรมโครงสร้างมีกระบวนการเพียง 3 รูปแบบ และมีแนวคิดใหม่ว่าการโปรแกรมไม่จำเป็นต้องใช้ Structure Programming หากศึกษาในรายละเอียดก็พบว่าทุกภาษายังจำเป็นต้องมีกระบวนการ 3 รูปแบบนี้อยู่เป็นพื้นฐาน เช่น Microsoft Access ที่มีการใช้งาน Tool หรือ wizard ให้ใช้ แต่ก็ยังต้องมีการลง code ใน module ซึ่งต้องมีประสบการณ์ในการโปรแกรมแบบ Structure Programming เพื่อควบคุม Object ให้ทำงานประสานกันได้


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



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



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


การเขียนผังงานเพื่ออธิบายขั้นตอนการทำงาน
                     ผังงาน เป็นเครื่องมือสำหรับวาดภาพ 2 มิติ นำเสนอขั้นตอนการทำงาน มักใช้ในการแสดงแบบโปรแกรมที่ไม่ซับซ้อนมากนัก ต่อมาก็มีการประยุกต์ใช้แสดงขั้นตอนการทำงานของส่วนงานต่าง ๆ เพราะสัญลักษณ์ในแผนภาพช่วยในการอธิบายการทำงานแบบมีเงื่อนไขได้ดีกว่าการเขียนเชิงพรรณาประโยชน์ของการใช้ผังงาน
         1. ทำให้เข้าใจ และแยกแยะปัญหาได้ง่าย (Problem Define)
         2. แสดงลำดับการทำงาน (Step Flowing)
         3. หาข้อผิดพลาดได้ง่าย (Easy to Debug)
         4. ทำความเข้าใจโปรแกรมได้ง่าย (Easy to Read)
         5. ไม่ขึ้นกับภาษาใดภาษาหนึ่ง (Flexible Language)



แบบทดสอบ

1.ข้อใดอธิบายความหมายของผังงานถูกต้อง 
      ก.อธิบายขั้นตอนวิธีการท างานในลักษณะข้อความ 
      ข.อธิบายล าดับขั้นตอนในลักษณะรูปภาพ
      ค.อธิบายล าดับขั้นตอนการแก้ปัญหา 
      ง.อธิบายขั้นตอนการท างานของโปรแกรมทั่ว ๆ ไป

2.ข้อใดคือความหมายของค าว่า “Algorithm” 
     ก.อธิบายล าดับขั้นตอนการท างานตั้งแต่ ขั้นตอนแรกถึงขึ้นตอนสุดท้าย 
     ข.อธิบายวิธีการแก้ไขปัญหา
     ค.ทดสอบล าดับขั้นตอนการแก้ปัญหา
     ง.ถูกทุกข้อ 

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

4.สัญลักษณ์ข้อใดมีได้เพียงสัญลักษณ์เดียวเท่านั้นในผังงาน 
    ก.จุดเริ่มต้น 
    ข.จุดสิ้นสุด
    ค.แสดงผลทางจอภาพ 
    ง.ถูกทั้งข้อ ก. และ ข.  

5.ทิศทางของล าดับขั้นตอนการท างานในผังงานนิยมเขียนอย่างไร
    ก.ล่างขึ้นบน 
    ข.ขวาไปซ้าย 
    ค.บนลงล่าง
    ง.ทิศทางใดก็ได้ 

6.สัญลักษณ์การตัดสินใจมีทิศทางการไหลออกได้กี่ทิศทาง
    ก. 2 ทิศทาง 
    ข. 3 ทิศทาง 
    ค. 4 ทิศทาง
    ง. 5 ทิศทาง 

7.สัญลักษณ์ในข้อใดมีเฉพาะทิศทางออกเท่านั้น 
    ก.จุดเริ่มต้น 
    ข.จุดสิ้นสุด
    ค.การแสดงผลลัพธ์ทางจอภาพ 
    ง.ถูกทั้งข้อ ก. และ ข. 

8. ผังงานโปรแกรมมี 3 ประเภท ข้อใดไม่ใช่ประเภทของผังงานโปรแกรม
     ก.ผังงานแบบเรียงลำดับ
     ข.ผังงานแบบโปรแกรมระบบ
     ค.ผังงานแบบแบบมีการกำหนดเงื่อนไข
     ง.ผังงานแบบการทำงานวนรอบ

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

10. ผังงานรูปแบบใดที่มีการทำงานเรียงลำดับตั้งแต่ต้นจนจบกระบวนการทำงาน
     ก.ผังงานแบบเรียงลำดับ
     ข.ผังงานแบบตามลำดับการทำงาน
     ค.ผังงานแบบแบบมีการกำหนดเงื่อนไข
    ง.ผังงานแบบการทำงานทำซ้ำ

วันพุธที่ 7 กันยายน พ.ศ. 2559

กลุ่มประเทศอาเซียน


อาเซียน




                     ในสภาวะแห่งยุคทุนนิยม ที่เศรษฐกิจเป็นตัวขับเคลื่อนและผลักดันให้ประเทศต่าง ๆ ก้าวรุดไปข้างหน้าอย่างรวดเร็ว ประกอบกับประเทศต่าง ๆ นั้นอยู่รวมกันเป็นสังคมโลก ไม่สามารถอยู่โดดเดี่ยวเดียวดายได้ จึงต้องมีการรวมตัวกันของประเทศในแต่ละภูมิภาคเพื่อเพิ่มอำนาจในการต่อรองและเพิ่มขีดความสามารถในการแข่งขันในเวทีระหว่างประเทศ เพื่อให้ได้มาซึ่งผลประโยชน์ร่วมและพัฒนาประเทศในภูมิภาคไปพร้อม ๆ กัน ด้วยเหตุนี้ ภูมิภาคเอเชียตะวันออกเฉียงใต้หรือ อาเซียน จึงได้มีข้อตกลงให้อาเซียนรวมตัวเป็นชุมชนหรือประชาคมเดียวกันให้สำเร็จภายในปี พ.ศ. 2558 (ค.ศ. 2015)
                    แต่ก่อนที่เราจะมาดูเนื้อหาสาระของการรวมตัวเป็นประชาคมอาเซียนนี้ เราจะมาย้อนดูกันรวมตัวกันของประเทศในอาเซียนว่ามีการรวมตัวกันได้อย่างไร จนมาเป็นอาเซียนในปัจจุบัน
                    โดยอาเซียนหรือ สมาคมประชาชาติแห่งเอเชียตะวันออกเฉียงใต้ (ASEAN : The Association of South East Asian Nations) ได้ก่อตั้งเมื่อวันที่ 8 สิงหาคม พ.ศ.2510 โดยประเทศผู้ก่อตั้งอาเซียน คือ ไทย อินโดนีเซีย มาเลเซีย ฟิลิปปินส์ และสิงคโปร์ ต่อมาในปีพ.ศ.2527 บรูไน ดารุสซาลาม ได้เข้ามาเป็นสมาชิก ตามด้วยเวียดนามเข้ามาเป็นสมาชิกเมื่อ พ.ศ. 2538 ขณะที่พม่าและลาวเข้ามาเป็นสมาชิกใน พ.ศ.2540 และประเทศสุดท้ายคือกัมพูชา เข้าเป็นสมาชิกอาเซียน เมื่อ พ.ศ. 2542 ปัจจุบันอาเซียนมีประเทศสมาชิกทั้งหมด 10 ประเทศ

รู้จัก 10 ประเทศอาเซียน



1.บรูไนดารุสซาลาม (Brunei Darussalam)                       ประเทศบรูไน มีชื่อเป็นทางการว่า "เนการาบรูไนดารุสซาลาม" มีเมือง "บันดาร์เสรีเบกาวัน" เป็นเมืองหลวง ถือเป็นประเทศที่มีขนาดไม่ใหญ่นัก เพราะมีพื้นที่ประมาณ 5,765 ตารางกิโลเมตร ปกครองด้วยระบบสมบูรณาญาสิทธิราช โดยมีพระมหากษัตริย์เป็นประมุข มีประชากร 381,371 คน (ข้อมูลปี พ.ศ.2550) โดยประชากรเกือบ 70% นับถือศาสนาอิสลาม และใช้ภาษามาเลย์เป็นภาษาราชการ



2.ราชอาณาจักรกัมพูชา (Kingdom of Cambodia)
                  เมืองหลวงคือ กรุงพนมเปญ เป็นประเทศที่มีอาณาเขตติดต่อกับประเทศไทยทางทิศเหนือ และทิศตะวันตก มีพื้นที่ 181,035 ตารางกิโลเมตร หรือขนาดประมาณ 1 ใน 3 ของประเทศไทย มีประชากร 14 ล้านคน (ข้อมูลปี พ.ศ.2550) โดยประชากรกว่า 80% อาศัยอยู่ในชนบท 95% นับถือศาสนาพุทธนิกายเถรวาท ใช้ภาษาเขมรเป็นภาษาราชการ แต่ก็มีหลายคนที่พูดภาษาอังกฤษ ฝรั่งเศส และเวียดนามได้


3.สาธารณรัฐอินโดนีเซีย (Republic of Indonesia)
                เมืองหลวงคือ จาการ์ตา ถือเป็นประเทศหมู่เกาะขนาดใหญ่ที่สุดในโลก โดยมีพื้นที่ 1,919,440 ตารางกิโลเมตร และมีประชากรมากถึง 240 ล้านคน (ข้อมูลปี พ.ศ.2553) โดย 61% อาศัยอยู่บนเกาะชวา ส่วนใหญ่นับถือศาสนาอิสลาม และใช้ภาษา Bahasa Indonesia เป็นภาษาราชการ



4.สาธารณรัฐประชาธิปไตยประชาชนลาว (สปป.ลาว) (The Lao People's Democratic Republic of Lao PDR)
                     เมืองหลวงคือ เวียงจันทน์ ติดต่อกับประเทศไทยทางทิศตะวันตก โดยประเทศลาวมีพื้นที่ประมาณครึ่งหนึ่งของประเทศไทย คือ 236,800 ตารางกิโลเมตร พื้นที่กว่า 90% เป็นภูเขาและที่ราบสูง และไม่มีพื้นที่ส่วนใดติดทะเล ปัจจุบัน ปกครองด้วยระบอบสังคมนิยม โดยมีประชากร 6.4 ล้านคน ใช้ภาษาลาวเป็นภาษาหลัก แต่ก็มีคนที่พูดภาษาไทย ภาษาอังกฤษ และภาษาฝรั่งเศสได้ ประชากรส่วนใหญ่นับถือศาสนาพุทธ


5.ประเทศมาเลเซีย (Malaysia)
                 เมืองหลวงคือ กรุงกัวลาลัมเปอร์ เป็นประเทศที่ตั้งอยู่ในเขตศูนย์สูตร แบ่งเป็นมาเลเซียตะวันตกบคาบสมุทรมลายู และมาเลเซียตะวันออก ตั้งอยู่บนเกาะบอร์เนียว ทั้งประเทศมีพื้นที่ 329,758 ตารางกิโลเมตร จำนวนประชากร 26.24 ล้านคน นับถือศาสนาอิสลามเป็นศาสนาประจำชาติ ใช้ภาษา Bahasa Melayu เป็นภาษาราชการ




6.สาธารณรัฐฟิลิปปินส์ (Republic of the Philippines)
                   เมืองหลวงคือ กรุงมะนิลา ประกอบด้วยเกาะขนาดต่าง ๆ รวม 7,107 เกาะ โดยมีพื้นที่ดิน 298.170 ตารางกิโลเมตร มีประชากร 92 ล้านคน (ข้อมูลปี พ.ศ.2553) ส่วนใหญ่นับถือศาสนาคริสต์ และเป็นประเทศที่มีประชากรนับถือศาสนาคริสต์นิกายโรมันคาทอลิกเป็นอันดับ 4 ของโลก มีการใช้ภาษาในประเทศมากถึง 170 ภาษา แต่ใช้ภาษาอังกฤษ และภาษาตากาลอก เป็นภาษาราชการ




7.สาธารณรัฐสิงคโปร์ (The Republic of Singapore)
                 เมืองหลวงคือ กรุงสิงคโปร์ ตั้งอยู่บนตำแหน่งยุทธศาสตร์ที่เป็นศูนย์กลางคมนาคมทางเรือของอาเซียน จึงเป็นประเทศที่มีการพัฒนาทางด้านเศรษฐกิจมากที่สุดในย่านนี้ แม้จะมีพื้นที่ราว 699 ตารางกิโลเมตรเท่านั้น มีประชากร 4.48 ล้านคน ใช้ภาษาอังกฤษเป็นภาษาทางการ แต่มีภาษามาเลย์เป็นภาษาประจำชาติ ปัจจุบันใช้การปกครองแบบสาธารณรัฐ (ประชาธิปไตยแบบรัฐสภา มีสภาเดียว)




8.ราชอาณาจักรไทย (Kingdom of Thailand)
                  เมืองหลวงคือกรุงเทพมหานคร มีพื้นที่ 513,115.02 ตารางกิโลเมตร ประกอบด้วย 77 จังหวัด มีประชากร 65.4 ล้านคน (ข้อมูลปี พ.ศ.2553) ส่วนใหญ่นับถือศาสนาพุทธ และใช้ภาษาไทยเป็นภาษาราชการ ปกครองด้วยระบอบประชาธิปไตย โดยมีพระมหากษัตริย์เป็นองค์ประมุขของประเทศ




9.สาธารณรัฐสังคมนิยมเวียดนาม (The Socialist Republic of Vietnam)
                  เมืองหลวงคือ กรุงฮานอย มีพื้นที่ 331,689 ตารางกิโลเมตร จากการสำรวจถึงเมื่อปี พ.ศ.2553 มีประชากรประมาณ 88 ล้านคน ประมาณ 25% อาศัยอยู่ในเขตเมือง ส่วนใหญ่ร้อยละ 70 นับถือศาสนาพุทธนิกายมหายาน ที่เหลือนับถือศาสนาคริสต์ ปัจจุบัน ปกครองด้วยระบอบสังคมนิยมคอมมิวนิสต์ 




10.สหภาพพม่า (Union of Myanmar)
                  มีเมืองหลวงคือ เนปิดอว ติดต่อกับประเทศไทยทางทิศตะวันออก โดยทั้งประเทศมีพื้นที่ประมาณ 678,500 ตารางกิโลเมตร ประชากร 48 ล้านคน กว่า 90% นับถือศาสนาพุทธนิกายเถรวาท หรือหินยาน และใช้ภาษาพม่าเป็นภาษาราชการ 








 



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

โทษและโรคของบุหรี่



โทษของบุหรี่




                 ทำเสี่ยงสารพัดโรค ยิ่งสูบมากก็ยิ่งตายไว แล้วพิษภัยอะไรบ้างที่สิงห์อมควันต้องเผชิญ รีบอ่าน รีบดับบุหรี่ในมือ
                  ใคร ๆ ก็รู้ว่า "บุหรี่" มีพิษภัยร้ายแรงขนาดไหน แต่สิงห์อมควันหลายคนก็อ้างว่าพยายามเท่าไรก็ "เลิกไม่ได้" เสียที ถ้าใครเป็นหนึ่งในนั้น เราอยากให้คุณลองพยายามดูใหม่ เพราะองค์การอนามัยโลก (WHO) เผยข้อมูลที่น่าตกใจว่า ในควันบุหรี่ เต็มไปด้วย นิโคติน (สารเสพติด), สารเคมี 7,000 ชนิด, สารพิษ มากกว่า 250 ชนิด และสารก่อมะเร็ง มากกว่า 70 ชนิด ยิ่งสูบบุหรี่นานเท่าไร คุณก็ยิ่งเสี่ยงต่อโรคภัยไข้เจ็บที่บั่นทอนชีวิตของคุณให้สั้นลง ไม่ต่างจากไฟของบุหรี่ที่ค่อยมอด ๆ ลงเมื่อสูบไปนาน ๆ เลย

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

หลอดเลือดสมองตีบ-แตก-ตัน
                สารพิษอันน่ากลัวในควันบุหรี่จะทำให้เกิดภาวะหลอดเลือดตีบ แตก ตัน ซึ่งถ้าเกิดขึ้นกับหลอดเลือดส่วนที่ไปเลี้ยงสมอง ก็จะทำให้เป็นโรคสมองเสื่อม โดยมีงานวิจัยจากสถาบันอุดมศึกษาในลอนดอน ที่เคยลงตีพิมพ์ในเว็บไซต์เอบีซีนิวส์ ระบุว่า คนที่สูบบุหรี่จัดอย่างต่อเนื่องโดยเฉพาะในเพศชาย ประสิทธิภาพของสมองจะเสื่อมเร็วกว่าผู้คนที่ไม่สูบบุหรี่ และจะมีระดับการทำงานของสมองเทียบเท่ากับคนที่แก่กว่า 10 ปี หรืออธิบายได้อย่างง่าย ๆ ว่า หากคุณอายุ 50 ปี และสูบบุหรี่ ประสิทธิภาพการทำงานของสมองของคุณจะเทียบเท่ากับคนอายุ 60 ปีที่ไม่สูบบุหรี่นั่นเอง
อย่างไรก็ตาม ไม่ใช่แค่อาการสมองเสื่อมจะถามหาผู้สูบบุหรี่เท่านั้น แต่ถ้าหลอดเลือดในสมองตีบตันมาก ๆ เข้า จนเส้นเลือดในสมองแตก ก็ทำให้เป็นโรคอัมพฤกษ์ อัมพาต ทุกข์ทรมานไปทั้งชีวิต


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

โรคปอดและระบบทางเดินหายใจ
               ปอดคืออวัยวะหนึ่งที่ได้รับผลกระทบเต็ม ๆ จากการสูบบุหรี่ โดยจะทำให้เกิดอาการไอเรื้อรัง หายใจไม่สะดวก หลอดลมอักเสบ ปอดบวม โรคทางเดินหายใจอุดกั้นเรื้อรัง (COPD) เป็นโรคถุงลมโป่งพอง ซึ่งหากปล่อยทิ้งไว้จนปอดส่วนใหญ่ถูกทำลาย อาจต้องใช้เครื่องออกซิเจนช่วยหายใจตลอดเวลา
               และที่ร้ายแรงที่สุดก็คือ "โรคมะเร็งปอด" ซึ่งเป็นโรคร้ายที่คร่าชีวิตคนไทยเป็นอันดับต้น ๆ และส่วนใหญ่แล้ว ผู้ป่วยมะเร็งปอดร้อยละ 90 มีสาเหตุมาจากการสูบบุหรี่นี่เอง อาการเริ่มต้นจากอาการไอแห้ง ๆ เป็นเวลานานตามมาด้วยอาการไอเรื้อรัง แต่ในบางคนอาจไม่พบอาการไอเลย มารู้ตัวอีกทีก็ตรวจพบมะเร็งในระยะลุกลามแล้ว ซึ่งผู้ป่วยร้อยละ 90 จะเสียชีวิตใน 1-2 ปีหลังจากเป็นโรค
                นอกจากนี้ ยังมีข้อมูลจากศูนย์บริการเลิกบุหรี่ทางโทรศัพท์แห่งชาติ ระบุว่า ผู้ที่สูบบุหรี่เพียงวันละ 1 ซองก็มีความเสี่ยงโรคมะเร็งปอดมากกว่าผู้ไม่สูบบุหรี่ถึง 10 เท่า และหากสูบวันละ 2 ซอง ก็เสี่ยงโรคมะเร็งมากกว่าคนไม่สูบบุหรี่ถึง 25 เท่า 

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

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

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

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

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


วันอาทิตย์ที่ 4 กันยายน พ.ศ. 2559

แบบทดสอบโครงสร้างข้อมูลแบบกราฟ



ตอนที่ 1 จงเลือกคำตอบที่ถูกต้องเพียงคำตอบเดียว โดยทำเครื่องหมาย X ทับตัวเลือกที่ต้องการ


1.โครงสร้างข้อมูลแบบกราฟเปรียบได้กับอะไร
ก. เซ็ตของจุด
ข. เซ็ตของเส้น
ค. เส้นการเชื่อมต่อ
ง. ถูกทุกข้อ

2. กราฟรูปนี้เป็นกราฟชนิดใด
ก. กราฟระบุทิศทาง
ข. กราฟไม่ระบุทิศทาง
ค. กราฟระบุน้ำหนัก
ง. ผิดทุกข้อ

3. รูปแบบโครงสร้างที่กำหนดเชื่อมต่อแบบเส้นมีความสัมพันธ์แบบใด
ก. One to One
ข. One to many
ค. Many to One
ง. Many to Many

4. การท่องเข้าไปในกราฟแบบ Breadth First Traversal ท่องอย่างไร
ก. เข้าจากโหนดล่างสุดจากซ้ายไปขวา
ข. เข้าจากโหนดล่างสุดจากขวาไปซ้าย
ค. เข้าจากตัวโหนดแรกแล้วลงซ้ายไปขวา
ง. เข้าจากตัวโหนดแรกแล้วลงขวาไปซ้าย
5. การท่องเข้าไปในกราฟแบบ Depth First Search (BFS) ท่องอย่างไร
ก. เข้าจากโหนดล่างสุดจากซ้ายไปขวา
ข. เข้าจากโหนดล่างสุดจากขวาไปซ้าย
ค. ท่องเข้ายังโครงสร้างทรีแบบอินออเดอร์
ง.ท่องเข้ายังโครงสร้างทรีแบบพรีออเดอร์

6. Node of Graph มีความหมายตรงกับข้อใด
ก. การเชื่อม
ข. เซ็ตของจุดบนกราฟ
ค. เซ็ตของเส้นบนกราฟ
ง. โหนดของกราฟหรือโหนด

7. Critical path method มีความหมายตรงกับข้อใด
ก. เส้นทางการเชื่อมต่อ
ข. เซ็ตของจุดบนกราฟ
ค. เส้นทางเดินบนกราฟ
ง. การวิเคราะห์เส้นทางวิกฤต
8. Shortest path analysis มีความหมายตรงกับข้อใด
ก. เส้นทางสั้นๆ
ข. เส้นทางเดินบนกราฟ
ค. การวิเคราะห์เส้นทางที่สั้นที่สุด
ง. การออกแบบเส้นทางเดินที่สั้นที่สุด
9. รูปแบบข้อมูลของกราฟเป็นอย่างไร
ก. เป็นข้อมูลเชิงเส้น
ข. มีเส้นทางเดินบนกราฟทางเดียวกัน
ค. ข้อมูลที่จัดเก็บต้องกำหนดเป็นชนิดเดียวกัน
ง. มีความสัมพันธ์ระหว่างโหนดในลักษณะ many to many

10. กราฟระบุน้ำหนักเป็นอย่างไร
ก. เป็นกราฟที่ไม่ระบุทิศทาง
ข. เป็นกราฟที่ระบุทิศทางและบอกน้ำหนักได้
ค. เป็นกราฟที่ใช้ชั่งน้ำหนักของสินค้าที่ใช้ในการซื้อขาย
ง. ไม่มีข้อใดถูก



โครงสร้างข้อมูลแบบกราฟ (Graphs)

โครงสร้างข้อมูลกราฟ
        กราฟ (Graph) เป็นโครงสร้างข้อมูลไม่เป็นเชิงเส้น (Nonlinear Data Structure) มีความแตกต่างจากโครงสร้างข้อมูลทรีในบทที่ผ่านมา แต่เป็นลักษณะพิเศษแบบหนี่งของกราฟโดยทรีเป็นกราฟอะไซคลิกที่ไม่มีการวนลูปและการวนถอยกลับ เป็นกราฟเชื่อมกันที่มีเพียงเอจเดียวระหว่างสองโหนด
      กราฟเป็นโครงสร้างข้อมูลประเภทหนึ่งที่แสดงความสัมพันธ์ระหว่าง vertex และ edge กราฟจะประกอบด้วยกลุ่มของ vertex ซึ่งแสดงในกราฟด้วยสัญลักษณ์รูปวงกลม และ กลุ่มของ edge (เส้นเชื่อมระหว่าง vertex) ใช้แสดงถึงความสัมพันธ์ระหว่าง vertex หากมี vertex ตั้งแต่ 2 vertex ขึ้นไปมีความสัมพันธ์กัน ใช้สัญลักษณ์เส้นตรงซึ่งอาจมีหัวลูกศร หรือไม่มีก็ได้
กราฟสามารถเขียนแทนด้วยสัญลักษณ์ ดังนี้
G = ( V , E )
G คือ กราฟ
V คือ กลุ่มของ vertex
E คือ กลุ่มของ edge
ศัพท์ที่เกี่ยวข้อง
1.เวอร์เทก (Vertex)  หมายถึง  โหนด
2.เอดจ (Edge)        หมายถึง  เส้นเชื่อมของโหนด
3.ดีกรี (Degree)      หมายถึง จำนวนเส้นเข้าและออก ของโหนดแต่ละโหนด
4.แอดจาเซนท์โหนด (Adjacent Node)    หมายถึง โหนดที่มีการเชื่อมโยงกัน
          ตัวอย่างของกราฟในชีวิตประจำวัน เช่น กราฟของการเดินทางระหว่างเมือง ซึ่ง vertex คือ กลุ่มของเมืองต่างๆ และ edge คือ เส้นทางเดินระหว่างเมือง หรือ ในเครือข่ายคอมพิวเตอร์ (Computer Network) vertex ก็คือ กลุ่มของเครื่องคอมพิวเตอร์ หรือโหนดต่างๆ และ edge ก็คือ เส้นทางการติดต่อสื่อสารระหว่างโหนดต่างๆ เป็นต้น
 ประเภทของกราฟ
แบ่งเป็น 3 ประเภทโดยแบ่งตามประเภทของ edge ได้ดังนี้
1. Direct Graph (กราฟแสดงทิศทาง) เป็นกราฟที่แสดงเส้นเชื่อมระหว่าง vertex โดแสดงทิศทางของการเชื่อมต่อด้วย

2. Undirected Graph กราฟที่แสดงเส้นเชื่อมต่อระหว่าง vertex แต่ไม่แสดงทิศทางของการเชื่อมต่อ


3. Cyclic Graph กราฟที่มีเส้นเชื่อมต่อระหว่าง vertex ที่ทำให้ vertex มีลักษณะเป็นวงจรปิด (Cycle) เส้นเชื่อมต่อระหว่าง vertex อาจจะแสดงทิศทางหรือไม่แสดงทิศทางการเชื่อมต่อก็ได้

เส้นทาง (Path) 
           เส้นทางคือการเดินทางจาก vertex หนึ่งไปยังอีก vertex หนึ่งที่ต้องการ โดยผ่าน edge ที่เชื่อมระหว่าง vertex
           ความยาวของเส้นทาง (The length of path) คือ จำนวนของ edge ในเส้นทางเดินนั้น ว่ามีจำนวนเท่าไหร่ ในการเดินทางจาก vertex หนึ่ง ไปยังอีก vertex หนึ่ง ถ้าหากเส้นทางประกอบด้วย vertex จำนวน N ความยาวของเส้นทางจะเท่ากับ N-1
ตัวอย่างเส้นทางการเดินทาง จาก vertex A ไป vertex D จะมีเส้นทางดังนี้

ตัวอย่างเส้นทางการเดินทาง จาก vertex A ไป vertex D จะมีเส้นทางดังนี้

การแทนที่กราฟด้วยเมตริกซ์ 
           โครงสร้างข้อมูลประเภทกราฟสามารถใช้เมตริกซ์มาแสดงแทนได้ โดยกราฟที่ประกอบด้วย vertex จำนวน N vertex สามารถแทนที่ด้วยเมตริกซ์ขนาด N x N โดยค่าในเมตริกซ์จะประกอบด้วย          ค่า 0 และ 1
         ค่า 0 จะใช้แทนไม่มี edge ความยาว 1 เชื่อมต่อจากต้นทางไปปลายทาง และ
         ค่า 1 จะใช้แทนมี edge ความยาว 1 เชื่อมต่อจากต้นทางไปปลายทาง
ตัวอย่างจากรูปกราฟแบบ Direct Graph

สามารถแทนที่กราฟด้วยเมตริกซ์ดังนี้
ตัวอย่าง หากเป็นกราฟแบบ Undirected Graph

การคำนวณเส้นทางระหว่าง vertex โดยใช้ Adjacency Matrix 
           จากการแทนที่กราฟด้วยเมตริกซ์ เราสามารถนำเมตริกซ์ที่ได้มาคำนวณหาจำนวนเส้นทางระหว่าง vertex ต้นทางและปลายทางที่มีจำนวน edge ต่างๆ ได้

ตัวอย่างจากรูป สามารถคำนวณจำนวนเส้นทางระหว่าง vertex ที่มี edge จำนวน 3 เส้นได้ดังนี้


ตัวอย่างจากรูป สามารถคำนวณจำนวนเส้นทางระหว่าง vertex ที่มี edge จำนวน 4 เส้นได้ดังนี้