สถิติการเข้าชม

วันจันทร์ที่ 7 กุมภาพันธ์ พ.ศ. 2554

สัปดาห์ที่ 12 เริ่ม วันที่ 17 มกราคม 2554 ถึง วันที่ 21 มกราคม 2554

งานที่ได้ปฏิบัติ
- สร้างแบบประเมิน Competency ของธนาคารออมสิน จำนวน 2 ภาค โดยแยกเป็น ผู้จัดการสาขา ผู้ช่วยผู้จัดการสาขา และพนักงานปฏิบัติการ ระดับ 2-7 ตั้งชื่อโปรไฟล์ของแต่ละตำแหน่งและกำหนดเกณฑ์การให้คะแนนในแต่ละตำแหน่ง

- ถ่ายเอกสาร  จำนวน 4 ชุด

-  เดินเอกสาร จำนวน 2 ชุด

- ช่วยพี่ในองค์กรขนย้ายโต๊ะทำงาน และเอกสารต่าง ๆ เพื่อย้ายที่นั่งทำงานไปอยู่ในห้องเดิม

- จัดเก็บ แบบประเมิน Competency ที่ปริ้นแล้ว เข้าแฟ้ม

ปัญหาและอุปสรรค
- แบบประเมิน Competency มีค่อนข้างมาก บางครั้งก็ปริ้นมาซ้ำกัน เพราะผู้ประเมินส่งมามากกว่า 1 ครั้ง

วิธีการแก้ปัญหา

-
ดูเอกสารที่ใหม่ที่สุด เป็นหลัก แต่ก็เก็บรวมกันไว้ เผื่อในอนาคตมีการเรียกดูหรือมีการตรวจสอบในภายหลัง

ประโยชน์ที่ได้รับ


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

สัปดาห์ที่ 11 เริ่ม วันที่ 10 มกราคม 2554 ถึง วันที่ 14 มกราคม 2554

งานที่ได้ปฏิบัติ
- สร้างแบบประเมิน Competency ของธนาคารออมสิน จำนวน 3 ภาค โดยแยกเป็น ผู้จัดการสาขา ผู้ช่วยผู้จัดการสาขา และพนักงานปฏิบัติการ ระดับ 2-7 ตั้งชื่อโปรไฟล์ของแต่ละตำแหน่งและกำหนดเกณฑ์การให้คะแนนในแต่ละตำแหน่ง

- ถ่ายเอกสารการประชุม จำนวน 30 ชุด

เดินเอกสาร จำนวน 4 ชุด

- จัดเตรียมชา กาแฟ ของว่าง สำหรับการประชุมในองค์กร จำนวน 15 ชุด

ปัญหาและอุปสรรค
- จัดเตรียมชา กาแฟ ของว่าง ได้ช้า เพราะไม่ชำนาญ
วิธีการแก้ปัญหา

-
มีพี่มาช่วยจัด 1 คน

ประโยชน์ที่ได้รับ

- ได้เรียนรู้กาชงกาแฟ การเสริฟ การเดินเข้าหาผู้ใหญ่ แบบเรียบร้อย
- ได้จัดเอกสารให้ผู้ที่มาประชุม ซึ่งเป็นระดับหัวหน้า อย่างเป็นระเบียบ อ่านง่าย หาง่าย

วันอาทิตย์ที่ 9 มกราคม พ.ศ. 2554

สัปดาห์ที่ 10 เริ่ม วันที่ 4 มกราคม 2554 ถึง วันที่ 7 มกราคม 2554

งานที่ได้ปฏิบัติ
- ตรวจเช็คและติดหมายเลขอุปกรณ์ครุภัณฑ์ของหน่วยงานวางแผนกลยุทธ์การบริหารทรัพยากรบุคคล 1 และติดหมายเลขครุภัณฑ์ไว้กับอุปกรณ์ที่มีหมายเลขตรงกัน ประกอบไปด้วย
                เก้าอี้สีน้ำเงิน                         จำนวน 18 ตัว
                 โต๊ะทำงานระดับ 2-7           จำนวน 5 ตัว
                ตู้เก็บเอกสาร                         จำนวน 5 ใบ
                โต๊ะวางคอมพิวเตอร์             จำนวน 4 ตัว
                ชั้นวางเอกสาร                       จำนวน 5 ใบ
                เก้าอี้นั่งทำงานของพนักงานระดับ 10 จำนวน 1 ตัว
                 เก้าอี้เบาะสีน้ำตาล              จำนวน 10 ตัว
-  ถ่ายเอกสาร 12 ชุด
-  เช็คการลาป่วยและการลากิจของพนักงานในหน่วยงานวางแผนกลยุทธ์การบริหารทรัพยากรบุคคล 1 จำนวน 13 คน และทำงานบันทึกลงในระบบของธนาคารออมสิน
-  สร้างแบบประเมิน Competency จำนวน 20 สาขา
ปัญหาและอุปสรรค
-  อุปกรณ์ครุภัณฑ์มีจำนวนมากและปะปนกันอยู่ในห้องเก็บอุปกรณ์เนื่องจากมีหลายหน่วยงานมาฝากไว้ในห้องเก็บอุปกรณ์จึงทำให้การหา ครุภัณฑ์ของหน่วยงานยากและครุภัณฑ์บางตัวไม่มีหมายเลขติด
-  การสร้างแบบประเมินมีหลายขั้นตอน
วิธีการแก้ปัญหา
-  ช่วยกันหาครุภัณฑ์หลาย ๆ คน และถ้าบางตัวที่ไม่มีหมายเลขครุภัณฑ์ติดก็ต้องดูตามลักษณะที่ระบุในใบรายงานของธนาคารเอาว่าตรงกันไหมถ้าลักษณะเหมือนกันก็ติดหมายเลขครุภัณฑ์ได้
-  จดบันทึกขั้นตอนในการทำงานไว้ให้ชัดเจน
ประโยชน์ที่ได้รับ


- ได้รู้ถึงความอดทนในการหาครุภัณฑ์  
- สามารถนำความพยายาม ความอดทน ความรอบคอบ มาปรับใช้ในชีวิต

    สัปดาห์ที่ 9 เริ่ม วันที่ 27 ธันวาคม 2553ถึง วันที่ 30 ธันวาคม 2553

    งานที่ได้ปฏิบัติ
    - ปริ้นงานจากอีเมลของหัวหน้าและแก้ไขจดหมายในอีเมลให้ถูกต้องโดยหัวหน้าเป็นผู้ให้ข้อมูล จำนวน 15 หน้า
    - แก้ไขแบบประเมิน Competency ของธนาคารอมสิน จำนวน 2 หน่วย โดย เริ่มจากการลบแบบประเมินก่อน ต่อด้วยลบแบบกำหนดการประเมิน และแก้ไขแบบประเมินอีกครั้ง
    - ปริ้นรายงานการประชุม ใส่เลขหน้า จัดเรียงให้เหมาะสม
    - เดินเอกสาร จำนวน  2 ชุด
    - ถ่ายเอกสาร จำนวน 12 ชุด
    - ปริ้นงานในระบบ Intranet เรื่องโครงสร้างและข้อกำหนด ปี 2554 จำนวน 22 แผ่น
    - ตรวจสอบโครงสร้างใหม่ แก้ไขรายชื่อโครงสร้างเก่า และตรวจสอบตำแหน่งที่ว่าง
    ปัญหาและอุปสรรค
    - การทำงานมีหลายขั้นตอน ทำให้เกิดความสับสน ทำให้ทำงานผิดพลาด

    วิธีการแก้ปัญหา

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

    ประโยชน์ที่ได้รับ
     

    - ได้เรียนรู้ถึงโครงสร้างใหม่ของธนาคารออมสิน  
    - ได้เรียนรู้วิธีการนำเสนองาน จัดเอกสารในการประชุม


      วันอาทิตย์ที่ 2 มกราคม พ.ศ. 2554

      สัปดาห์ที่ 8 เริ่ม วันที่ 20 ธันวาคม 2553ถึง วันที่ 24 ธันวาคม 2553

      งานที่ได้ปฏิบัติ
      - สร้างแบบประเมิน Competency ของธนาคารออมสิน จำนวน 2 ภาค โดยแยกเป็น ผู้จัดการสาขา ผู้ช่วยผู้จัดการสาขา และพนักงานปฏิบัติการ ระดับ 2-7 และการตั้งชื่อโปรไฟล์ของแต่ละตำแหน่งจะต้องตรงกับรหัสสังกัดด้วย
      - กำหนดแบบประเมิน Competency ของธนาคารออมสิน จำนวน 2 ภาค โดยแยกเป็น ผู้จัดการสาขา ผู้ช่วยผู้จัดการสาขา และพนักงานปฏิบัติการ ระดับ 2-7 และ แก้ไขระดับของพนักงานแต่ละตำแหน่งให้ตรงตาม Mapping ของธนาคาร
      - ปริ้นงานจากอีเมลของหัวหน้างาน จำนวน 50 หน้า
      - ช่วยพี่ในหน่วยงาน ขนย้ายของและเอกสารต่าง ๆ ไปไว้อีกห้องหนึ่งเนื่องจากในหน่วยงานมีการปรับปรุงห้องใหม่
      - ปริ้นข้อกำหนดการทำงานของพนักงานธนาคารออมสิน จาก Intranet จำนวน 45 หน้า
      - เข้าร่วมกิจกรรมการซ้อมหนีไฟของธนาคารออมสิน และร่วมเล่นเกมส์ตามซุ้มต่าง ๆ
      ปัญหาและอุปสรรค
      - การทำงานมีหลายขั้นตอน ทำให้เกิดความสับสน ทำให้ทำงานผิดพลาด

       วิธีการแก้ปัญหา

      -
      เขียนขั้นตอนการทำงานในแต่ละขั้นตอนไว้ดู เมื่อเกิดการสับสน ป้องกันการทำงานผิดพลาด
      ประโยชน์ที่ได้รับ  

      - ได้เรียนรู้ขั้นตอนการหนีไฟที่ถูกต้อง 
      -ได้ลำดับขั้นตอนการทำงานอย่างเป็นระบบ

        สัปดาห์ที่ 7 เริ่ม วันที่ 13 ธันวาคม 2553ถึง วันที่ 17 ธันวาคม 2553

        งานที่ได้ปฏิบัติ
        - ประเมินพนักงานที่ทำงานอยู่ในธนาคารออมสิน สาขาสำนักงานใหญ่ในระบบ Competency ของธนาคารออมสิน จำนวน 400 คน
        - ลบแบบประเมินพนักงาน ในงวดวันที่ 1 ตุลาคม 2553 - 15 ธันวาคม 2553 จำนวน 1 สายงาน 2 ฝ่าย 7 ส่วน 25 หน่วยงาน
        - แก้ไขวันที่ในการกำหนดงวดที่จะทำการประเมิน จากงวดวันที่ 1 ตุลาคม 2553 - 15 ธันวาคม 2553เปลี่ยนเป็น วันที่ 1 ตุลาคม 2553 - 14 ธันวาคม 2553 จำนวน 1 สายงาน 2ฝ่าย 7 ส่วน 25 หน่วยงาน
        - สร้างแบบประเมินพนักงาน Competency ของธนาคารออมสินภาค 4 และภาค 2 จำนวน 65 สาขา โดยแยกเป็น ผู้จัดการสาขา ผู้ช่วยผู้จัดการสาขา และพนักงานปฏิบัติการ ระดับ 2-7
        - สร้างแบบประเมินCompetency ที่จะประเมินพนักงานที่อยู่ในธนาคารออมสิน สำนักงานใหญ่เพิ่มเติม เนื่องจากใบประเมินบางส่วนเพิ่งได้รับจึงต้องทำการสร้างก่อนถึงจะประเมินพนักงานได้
        - ถ่ายเอกสาร 30 ชุด
        - เดินเอกสาร 18 ชุด
        ปัญหาและอุปสรรค
        - การทำงานมีหลายขั้นตอน ทำให้เกิดความสับสน ทำให้ทำงานผิดพลาด
        วิธีการแก้ปัญหา

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

          สัปดาห์ที่ 6 เริ่ม วันที่ 7 ธันวาคม 2553ถึง วันที่ 9 ธันวาคม 2553

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

          วิธีการแก้ปัญหา

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

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

          สัปดาห์ที่ 5 เริ่ม วันที่ 29 พฤศจิกายน 2553ถึง วันที่ 1 ธันวาคม 2553

          งานที่ได้ปฏิบัติ
          - ตรวจสอบเอกสารประกอบการขอเข้าโครงการเกษียณอายุก่อนกำหนด 18 ภาค จำนวน ประมาณ 500 คน
          - แยกประเภทเอกสารการใช้หลักฐานการค้ำประกัน แบ่งเป็น บุคคลค้ำประกัน พันธบัตรรัฐบาล สลากออมสินพิเศษ และเงินฝากในสมุดบัญชี โดยดูจากเอกสาร
          - คัดแยกเอาสมุดบัญชีจากผู้ที่ใช้การค้ำประกัน แบบใช้บุคคลค้ำประกัน พันธบัตรรัฐบาล สลากออมสินพิเศษ ออกเพื่อส่งคืน
          - คัดแยก เอกสารที่ใช้บุคคลค้ำประกัน พันธบัตรรัฐบาล สลากออมสินพิเศษ และเงินฝากในสมุดบัญชี จัดเก็บตามภาค
          - ตัดป้ายหางปลา ติดเอกสารการประชุม
          - ทำรายชื่อพนักงานที่ขอเข้าโครงการเกษียณอายุก่อนกำหนด 18 ภาค แยกตามภาค เรียงตามสาขา แล้วทำการบันทึกที่หมายเหตุว่าพนักงานที่เข้าร่วมโครงการเกษียณอายุก่อนกำหนด ใช้การค้ำประกันแบบใด
          ปัญหาและอุปสรรค
          - พนักงานที่ขอเข้าร่วมโครงการเกษียณอายุ ส่งเอกสารไม่ครบ
          - เอกสารมีจำนวนมาก ทำให้เกิดความสับสน

          วิธีการแก้ปัญหา

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

            วันศุกร์ที่ 10 ธันวาคม พ.ศ. 2553

            สัปดาห์ที่ 4 เริ่ม วันที่ 22 พฤศจิกายน 2553 ถึง วันที่ 26 พฤศจิกายน 2553

            งานที่ได้ปฏิบัติ

            - ค้นหารายชื่อของพนักงานที่มีชื่อซ้ำกันโดยค้นหาจากรหัสพนักงาน จำนวน 3834 รายชื่อ
            - เดินเอกสาร จำนวน 3 ชุด
            -สร้างแบบประเมิน Competency ของพนักงาน โดยระบุตามส่วน หน่วย ฝ่าย เรียงตามรหัสสังกัดและตำแหน่งของพนักงาน ทำแบบประเมินในระบบIntranet ของธนาคารออมสิน
            - กำหนดแบบประเมิน Competency ของพนักงาน โดยตั้งชื่อโปรไฟล์ให้ตรงกับแบบฟอร์ม จำนวน 4 ตำแหน่งใหญ่ ๆ
            - กำหนดช่วงเวลาทั้งหมดเพื่อที่จะสามารถเข้าไปทำการประเมินในระยะเวลาที่กำหนด
            - แก้ไขเกณฑ์การให้คะแนน Competency ของพนักงาน โดยแบ่งตามตำแหน่ง หัวหน้าฝ่าย หัวหน้าส่วน หัวหน้าหน่วย และผู้ปฏิบัติการ แก้ไขในระบบIntranet ของธนาคารออมสิน จำนวน 4 ตำแหน่งใหญ่ ๆ
            - ประเมินพนักงาน ในระบบของธนาคารออมสิน จำนวน 50 คน

            ปัญหาและอุปสรรค

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

            วิธีการแก้ปัญหา

            - ค้นหาใน Microsoft office Excel โดยการใช้สูตรเลยทำให้งานเสร็จเร็วขึ้น
            - ค่อย ๆ ศึกษาหน่วยงานแต่ละหน่วยงานของธนาคารและจดตามความเข้าใจเพราะบางครั้งลืมก็กลับมาดูได้
            - ค่อย ๆ ปรับความเข้าใจของเกณฑ์การให้คะแนนของแต่ละตำแหน่งพอเข้าใจและจำได้ก็ไม่ต้องเสียเวลากลับมาดูเอกสารบ่อย ๆ
            - ระบบ Intranet ช้าแต่ก็ต้องรอเพราะจะช้าแต่ก็ต้องทำให้เสร็จ 

            ประโยชน์ที่ได้รับ

            - ได้ค้นพบสูตรที่สามารถใช้ค้นหางานได้รวดเร็วยิ่งขึ้น

            สัปดาห์ที่ 3 เริ่ม วันที่ 15 พฤศจิกายน 2553 ถึง วันที่ 19 พฤศจิกายน 2553

            งานที่ปฏิบัติ
            - คีย์ข้อมูลแบบประเมิน Competency ของพนักงาน คีย์ข้อมูลผ่านระบบของธนาคารออมสิน จำนวน 5 ชุด
            - แก้ไข Code ให้ตรงกับความหมายของ Function Competency จำนวน 80 Code
            - เดินเอกสาร จำนวน 5 ชุด

            ปัญหาและอุปสรรค

            - ทำงานได้สักพักระบบมีปัญหา
            - ค้นหาข้อมูลที่ทำการบันทึกแล้วไม่เจอในระบบ
            - หาห้องที่จะส่งเอกสารไม่เจอ

            วิธีแก้ปัญหา
            - บอกพี่ที่มอบหมายงานเพื่อแจ้งเจ้าหน้าที่ที่ดูแลระบบ
            - บอกพี่ที่มอบหมายงานเพื่อหาทางแก้ไข
            - สอบถาม รปภ.

            ประโยชน์ที่ได้รับ

            - ได้เรียนรู้การประเมินพนักงานธนาคารออมสิน ด้วยระบบ Competency ตามแบบที่กำหนดไว้

            วันอังคารที่ 16 พฤศจิกายน พ.ศ. 2553

            สัปดาห์ที่ 2 เริ่ม วันที่ 8 พฤศจิกายน 2553 ถึง วันที่ 12 พฤศจิกายน 2553

            งานที่ปฏิบัติ
            - บันทึกเลขที่หนังสือที่นำออกจากหน่วยงานเพื่อไปส่งให้กับหน่วยงานอื่น ๆ จำนวน 16 ฉบับ
            - ถ่ายเอกสาร จำนวน 25 ชุด
            - ส่งเอกสาร จำนวน 15 ชุด
            - รับโทรศัพท์ในหน่วยงาน
            - คัดแยกใบสมัครโครงการเกษียณอายุก่อนกำหนดของพนักงานธนาคารออมสิน
            - เรียนรู้โครงสร้างใหม่ขององค์กร(ธนาคารออมสิน)
            - พิมพ์ข้อมูลเกี่ยวกับโครงสร้างใหม่ เกี่ยวกับสาขาทั้งหมดของธนาคาร ดูแลโดยภาค 18 ภาค
            พิมพ์แยกให้ชัดเจนโดยใช้ Microsoft Office Excel 2007


            ปัญหาและอุปสรรค

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


            - พยายามใช้สมาธิ ในการทำงาน
            - หาเทคนิคในการจำเอาเอง โดยแต่ละหน่วยงานเทคนิคจะต่างกัน


            ประโยชน์ที่ได้รับ

            - ได้เรียนรู้การทำงานธุรการในองค์กร ตั้งแต่การลงบันทึกเข้า-ออก ของเอกสาร
            - ได้เรียนรู้วิธีการรับโทรศัพท์ การตอบคำถาม
            - ได้รู้ถึงที่ตั้งของแต่ละฝ่ายภายในธนาคารออมสิน สาขาสำนักงานใหญ่

            วันพุธที่ 10 พฤศจิกายน พ.ศ. 2553

            สัปดาห์ที่ 1 เริ่ม วันที่ 1 พฤศจิกายน 2553 ถึง วันที่ 5 พฤศจิกายน 2553

            งานที่ได้ปฏิบัติ


            แบบประเมินผลการทดลองปฏิบัติงานสำหรับพนักงานปฏิบัติการระดับ 4-7 - แยกประเภทตามภาคจำนวน 200 ชุด
            - ตรวจสอบลงในแบบบันทึกรายชื่อพนักงานทดลองงานที่ยังไม่ได้รับการบรรจุข้อมูล ณ วันที่ 31 สิงหาคม 2553 งวดที่1 จำนวน 200 ชุด
            - จัดเรียง ตามรหัสพนักงานเพื่อใส่ลงในแฟ้มเอกสารตามคำสั่งธนาคารออมสินที่ บค.5 จำนวน 200 ชุด

            - ไปรับเอกสารที่ตึก 1 ชั้น 2 และชั้น 3 จำนวน 2 ชุด
            โครงการเกษียณอายุก่อนกำหนด (Early Retirement) ประจำปี 2553
            - คัดแยกเอกสารใบสมัคร จำนวน 126 ชุด
            - คัดแยกใบเจตนาขอรับสิทธิ์ได้รับจากธนาคารและเงินสวัสดิสงเคราะห์กรณีพ้นหน้าที่ จำนวน 126 ชุด - คัดแยกใบแจ้งความเรื่องบัตรพนักงานหาย
            - จัดเรียงใบสมัคร ตามเลขลำดับจากน้อยไปหามาก
            - จัดเรียงใบเจตนาขอรับสิทธิ์ได้รับจากธนาคารและเงินสวัสดิสงเคราะห์กรณีพ้นหน้าที่ตามรหัสพนักงานจากน้อยไปหามาก
            - ตรวจสอบรายชื่อผู้สมัคร ลงในใบรายชื่อผู้ผ่านการพิจารณาคัดเลือกเข้าร่วมโครงการเกษียณอายุก่อนกำหนด (Early Retirement) ประจำปี 2553
            - จัดเรียงใบสมัครตามลำดับลงในแฟ้ม จำนวน 9 แฟ้ม
            - จัดเรียงใบแสดงเจตนาขอรับเงินที่มีสิทธิ์ที่ได้รับจากธนาคารและเงินสวัสดิสงเคราะห์กรณีพ้นหน้าที่จำนวน 9 แฟ้ม จำนวน 9 แฟ้ม
            - เรียงลำดับใบสมัครโครงการเกษียณอายุก่อนกำหนด (Early Retirement) ประจำปี 2553
            - แยกรหัสแบบแสดงเจตนาขอรับเงินที่มีสิทธิ์ที่ได้รับจากธนาคารและเงินสวัสดิสงเคราะห์กรณีพ้นหน้าที่
            - ติดตั้งคอมพิวเตอร์ PC และอุปกรณ์จำนวน 1 เครื่อง

            ปัญหาและอุปสรรค


            - แบบประเมินผลการทดลองปฏิบัติงานสำหรับพนักงานปฏิบัติการระดับ 4-7 รายชื่อไม่มีในแบบบันทึกรายชื่อพนักงานทดลองงานที่ยังไม่ได้รับการบรรจุ จำนวน 2 ชุด
            - รายชื่อพนักงานทดลองงานที่ยังไม่ได้รับการบรรจุมีจำนวนค่อนข้างมากทำให้ยากต่อการค้นหา
            - เอกสารใบสมัครโครงการเกษียณอายุก่อนกำหนด (Early Retirement) ประจำปี 2553 และใบแสดงเจตนาขอรับเงินที่มีสิทธิ์ที่ได้รับจากธนาคารและเงินสวัสดิสงเคราะห์กรณีพ้นหน้าที่มีจำนวนมากทำให้ยากต่อการค้นหาและจัดเรียงทำให้สับสน

            วิธีแก้ไขปัญหา


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


            ประโยชน์ที่ได้รับ
            - ได้เรียนรู้ถึงระบบการทำงานของธนาคาร
            - ได้เรียนรู้ถึงกระบวนการ โครงการเกษียณอายุก่อนกำหนด ที่ไม่เคยรู้มาก่อน




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

            DTS 11-16/09/52

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

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

            กรณีที่ดีที่สุด คือ กรณีที่ค่าหลักที่เลือกแบ่งแล้วข้อมูลอยู่ตรงกลางกลุ่มพอดี
            และในแต่ละส่วนย่อยก็เช่นเดียวกันจำนวนครั้งของการเปรียบเทียบเป็นดังนี้
            จำนวนครั้งของการเปรียบเทียบ = n log2 n ครั้ง
            กรณีที่แย่ที่สุด คือ กรณีที่ข้อมูลมีการเรียงลำดับอยู่แล้ว อาจจะเรียงจากน้อย
            ไปมากหรือจากมากไปน้อย หรือค่าหลักที่เลือกในแต่ละครั้งเป็นค่าหลักที่
            น้อยที่สุดหรือมากที่สุด จำนวนครั้งของการเปรียบเทียบจะมากที่สุดดังนี้
            จำนวนครั้งของการเปรียบเทียบ
            = (n −1) + (n −2) + . . . + 3 + 2 + 1
            = n (n −1) / 2 ครั้ง

            การค้นหาข้อมูล (Searching)
            การค้นหา คือการใช้วิธีการค้นหากับโครงสร้างข้อมูล เพื่อดูว่าข้อมูลตัว
            ที่ต้องการถูกเก็บอยู่ในโครงสร้างแล้วหรือยัง

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

            การค้นหาแบ่งเป็น 2 ประเภท ตามแหล่งที่จัดเก็บข้อมูลเช่นเดียวกับการเรียงลำดับ
            การค้นหาข้อมูลแบบภายใน (Internal Searching)
            การค้นหาข้อมูลแบบภายนอก (External Searching)

            1. การค้นหาแบบเชิงเส้นหรือการค้นหาตามลำดับ(Linear)
            เป็นวิธีที่ใช้กับข้อมูลที่ยังไม่ได้เรียงลำดับ
            หลักการ คือ ให้นำข้อมูลที่จะหามาเปรียบเทียบกับข้อมูลตัว
            แรกในแถวลำดับถ้าไม่เท่ากันให้เปรียบเทียบกับข้อมูลตัวถัดไปถ้าเท่ากัน
            ให้หยุดการค้นหา
            2. การค้นหาแบบเซนทินัล (Sentinel)เป็นวิธีที่การค้นหาแบบเดียวกับ
            วิธีการค้นหาแบบเชิงเส้นแต่ประสิทธิภาพดีกว่าตรงที่เปรียบเทียบน้อยครั้งกว่า
            พัฒนามาจากอัลกอริทึมแบบเชิงเส้น
            หลักการ
            1) เพิ่มขนาดของแถวลำดับ ที่ใช้เก็บข้อมูลอีก 1 ที่
            2) นำข้อมูลที่จะใช้ค้นหาข้อมูลใน Array ไปฝากที่ต้นหรือ ท้ายArray
            3) ตรวจสอบผลลัพธ์จากการหาโดยตรวจสอบจากตำแหน่งที่พบ ถ้าตำแหน่ง
            ที่พบมีค่าเท่ากับ n-1แสดงว่าหาไม่พบ
            3. การค้นหาแบบไบนารี (Binary Search)ใช้กับข้อมูลที่ ถูกจัดเรียงแล้ว
            เท่านั้นหลักการของการค้นหาคือ ข้อมูลถูกแบ่งออกเป็นสองส่วนแล้วนำ
            ค่ากลาง ข้อมูลมาเปรียบเทียบกับคีย์ที่ต้องการหา
            1) หาตัวแทนข้อมูลเพื่อนำมาเปรียบเทียบกับค่าที่ต้องการค้นตำแหน่งตัวแทน
            ข้อมูลหาได้จากสูตร
            mid = (low+high)/2
            mid คือ ตำแหน่งกลาง ,
            low คือ ตำแหน่งต้นแถวลำดับ
            high คือ ตำแหน่งท้ายของแถวลำดับ
            2) นำผลการเปรียบเทียบกรณีที่หาไม่พบมาใช้ในการค้นหารอบต่อไป
            ถ้าข้อมูลมีการเรียงจากน้อยไปหามาก เมื่อเปรียบเทียบแล้วคีย์มีค่ามากกว่า
            ค่ากลาง แสดงว่าต้องทำการค้นหาข้อมูลในครึ่งหลังต่อไป จากนั้นนำข้อมูล
            ครึ่งหลังมาหา ค่ากลางต่อ ทำอย่างนี้ไปเรื่อย ๆ จนกว่าจะได้ข้อมูลที่ต้องการ

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

            DTS 10-09/09/52


            กราฟ และ sorting
            กราฟ (Graph) เป็นโครงสร้างข้อมูลไม่เป็นเชิงเส้น
            (Nonlinear Data Structure) มีความแตกต่างจากโครงสร้างข้อมูล
            ทรีในบทที่ผ่านมา แต่เป็นลักษณะพิเศษ แบบหนี่งขอ'กราฟโดย
            ทรีเป็นกราฟอะไซคลิกที่ไม่มีการวนลูปและการวนถอยกลับ
            เป็นกราฟเชื่อมกันที่มีเพียงเอจเดียวระหว่างสองโหนด กราฟมีลักษณะ
            เป็นเซ็ตของ จุด (Point) และเซ็ตของเส้น (Line) ซึ่งแต่ละเส้นทำหน้า
            ที่เชื่อมต่อจุดเข้าด้วยกัน แต่ละจุดเรียกว่าโหนด (Node) ของกราฟ
            และเส้นเรียกว่าเอจ (Edge) บางครั้งเอจจะ เรียกว่าอาร์ค (Arc) และ
            โหนดเรียกว่าเวอร์ทิค (Vertice) โดยกำหนดให้กราฟ G มีเซ็ต
            ของโหนดเป็น VG และเซ็ตของเอจเป็น EG

            การวิ่งตามเส้นทางในกราฟ
            แอปพลิเคชั่นที่เขียนขึ้นมาเมื่อใช้งานกราฟส่วนใหญ่ต้องเข้าไปเรียกใช้
            งานในแต่ละ โหนด เช่น การพิมพ์รายการกิจกรรมในระบบการบริหารจัด
            การโครงการ การแสดงผล ระยะทางระหว่างเมือง เทคนิคพื้นฐานการวิ่ง
            ตามเส้นทางในกราฟ (Graph Traversal) ที่จะกล่าวถึง คือ การวิ่งตาม
            แนวกว้างก่อน (Breadth – first) และการวิ่งตามแนวลึกก่อน (Depth – first)
            การวิ่งตามเส้นทางมีสิ่งที่ต้องระวัง คือ การวิ่งไปถึงแต่ละโหนดควรมี
            เพียงครั้งเดียว การวิ่งซ้ำโหนดเดิมทำให้การทำงานและผลที่ได้เกิดขึ้นซ้ำ
            จากการวิ่งย้อน ตามเส้นทางที่เคยผ่านมาแล้ว และมีหลายเส้นทางที่เชื่อม
            ต่อระหว่างสองโหนด การเขียน อัลกอริทึมการวิ่งตามเส้นทางในกราฟจะใช้
            เครื่องหมายหรือตัวมาร์ก (Mark) บอกให้ทราบว่า มีการวิ่งมายังโหนดนี้แล้ว
            โดยก่อนหน้านี้จะถูกมาร์กว่ายังไม่วิ่งมา หรือเปลี่ยนมาใช้ตัวมาร์ก กับเอจ
            แทน ดังนั้น เอจที่ผ่านไปแล้วจะไม่ถูกรวมกับเอจอื่น ๆ ที่เหลือ เครื่องหมาย
            หรือตัวมาร์ก จะใช้เป็นมาร์กบิต (Mark Bit) เก็บไว้ในแต่ละโหนดหรือเอจ

            การวิ่งตามแนวกว้างก่อน
            การวิ่งตามเส้นทางในกราฟตามแนวกว้างก่อน (Breath – first Traversal)
            หรือการค้นหา ตามแนวกว้างก่อน (Breath – first Traversal) เริ่มด้วยการ
            เลือก มาหนึ่งโหนดเป็นตำแหน่ง เริ่มต้นและทำเครื่องหมายว่าวิ่งผ่านมา
            แล้ว จากนั้นวิ่งไปยังโหนดทุกโหนดที่ติดกับโหนด นี้และยังไม่วิ่งผ่าน
            และทำ เครื่องหมาย ทำเช่นนี้จะกระทั่งวิ่งผ่านทุก ๆ โหนดที่มีอยู่ในกราฟ
            การวิ่งตาม แนวกว้างในกราฟจากรูปที่ 10.13 ผลจากการวิ่งไปยังแต่ละ
            โหนดจะมีลำดับเป็น 1,2,3,4,5,6,7,8 หรือมีลำดับเป็น 1,3,2,6,5,4,7,8 ก็ได้
            ขึ้นอยู่กับการเลือกโหนดที่ จะวิ่งผ่าน ทางด้านซ้ายหรือขวาก่อน
            อัลกอริทึมการวิ่งตามเส้นทางในแนวกว้าง ก่อนจะใช้โครงสร้าง
            ข้อมูลคิวเพื่อเก็บโหนดที่วิ่งผ่านไปแล้วในแต่ละระดับของ กราฟ แต่ละ
            โหนดที่เก็บในคิวจะใช้ สำหรับวิ่งไปยังโหนดติดกันที่ยังไม่ได้วิ่งไป
            ทำจนวิ่งผ่านทุกโหนดในกราฟและสิ้นสุดลงเมื่อ คิวว่าง อัลกอริทึมการ
            วิ่งตาม เส้นทางในแนวกว้างก่อน

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

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

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

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

            การเรียงลำดับแบบแทรก (insertion sort)
            เป็นวิธีการเรียงลำดับที่ทำการเพิ่มสมาชิกใหม่เข้าไปในเซต ที่มี
            สมาชิกทุกตัวเรียง ลำดับอยู่แล้ว และทำให้เซตใหม่ที่ได้นี้มีสมาชิกทุกตัว
            เรียงลำดับด้วย วิธีการเรียงลำดับจะ

            1. เริ่มต้นเปรียบเทียบจากข้อมูลในตำแหน่งที่ 1 กับ 2หรือข้อมูลใน
            ตำแหน่งสุดท้าย และรองสุดท้ายก็ได้ถ้าเป็นการเรียงลำดับจากน้อย ไปมาก

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

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

            DTS 09-02/09/52

            สรุป
            เอ็กซ์เพรสชั่นทรีเป็นการนำนิพจน์มาเก็บยังโครงสร้างทรี โดยแต่ละโหนดจะเก็บตัวดำเนินการ (Operator) และตัวถูกดำเนินการ (Operand) ซึ่งตัวถูกดำเนินการจะเก็บอยู่ที่โหนดใบ ส่วนตัวดำเนินการจะเก็บอยู่ที่โหนดกิ่ง แต่ต้องคำนึงถึงความสำคัญของเครื่องหมายตามลำดับด้วย คือ-ฟังก์ชั่น-วงเล็บ-ยกกำลัง-เครื่องหมายหน้าเลขจำนวน-คูณ หาร-บวก ลบ***ถ้ามีความสำคัญในระดับเดียวกันให้ทำจากซ้ายไปขวาไบนารีเซิร์ซทรีค่าของโหนดรากจะมีค่ามากกว่าโหนดย่อยทางด้านซ้าย และมีค่าน้อยกว่าหรือเท่ากับโหนดย่อยทางด้านขวาการเพิ่มโหนดในไบนารีเซิร์ซทรี ถ้าทรีว่างโหนดที่เพิ่มจะเป็นโหนดราก ถ้าทรีไม่ว่างต้องทำการตรวจสอบโหนดใหม่ว่ามีค่ามากกว่าหรือน้อยกว่าค่าที่โหนดราก
            ***ถ้ามีค่ามากกว่าหรือเท่ากันจะนำโหนดที่เพิ่มไปเพิ่มยังทรีย่อยด้านขวา แต่ถ้ามีค่าน้อยกว่าจะนำไปเพิ่มที่ทรีย่อยด้านซ้าย
            การดึงโหนดในไบนารีเซิร์ซทรี ต้องทำการค้นหาตำแหน่งที่ต้องการดึงก่อนว่าอยู่ตำแหน่งใดแล้วต้องรู้ด้วยว่าโหนดแม่ของโหนดนั้นคือโหนดไหน จึงจะสามารถทำการดึงได้ แต่เมื่อดึงโหนดออกแล้ว ทรีนั้นต้องคงสภาพเนไบนารีเซิร์ซทรีเหมือนเดิม
            วิธีการดึงโหนดออก แยกได้ 3 วิธี
            1. กรณีโหนดที่จะดึงออกเป็นโหนดใบ สามารถดึงได้เลยเพราะไม่มีผลกระทบต่อโหนดอื่นๆ แล้วเป็นวิธีที่ง่ายที่สุด
            2. กรณีโหนดที่ดึงออกมีเฉพาะทรีย่อยด้านซ้ายหรือทรีย่อยด้านขวาเพียงด้านใดด้านหนึ่ง สามารถทำได้เหมือนวิธีแรก เพียงให้โหนดแม่ของโหนดที่ต้องการดึงออกชี้ไปยังโหนดลูกของโหนดนั้นแทน
            3. กรณีโหนดที่ต้องการดึงออกมีทั้งทรีย่อยด้านซ้ายและทรีย่อยด้านขวา ต้องทำการเลือกว่าจะนำทรีย่อยด้านใดมาแทนโหนดที่ถูกดึงออก
            ***ถ้าเลือกทรีย่อยด้านซ้ายต้องเลือกโหนดที่มีค่ามากที่สุดมาแทน แต่ถ้าเลือกทรีย่อยด้านขวาต้องเลือกโหนดที่มีค่น้อยที่สุดมาแทน
            Graph
            เป็นโครงสร้างข้อมูลแบบไม่เชิงเส้น ประกอบด้วยกลุ่มของสิ่งสองสิ่ง คือ
            1.โหนด แทนด้วย N
            2.เส้นเชื่อมระหว่างโหนด แทนด้วย E
            *** กราฟที่มีเส้นเชื่อมระหว่างโหนดที่ไม่มีลำดับ จะเรียกกราฟนั้นว่า กราฟแบบไม่มีทิศทาง
            ส่วนกราฟที่มีเส้นเชื่อมระหว่างโหนดที่มีลำดับ จะเรียกกราฟนั้นว่า กราฟแบบมีทิศทาง หรือเรียกว่า ไดกราฟ
            ในการเขียนกราฟสิ่งที่สนใจจะถูกแทนด้วยจุด หรือ วงกลม ที่มีชื่อข้อมูลกำกับ ส่วนเอ็จจะแทนด้วยเส้นหรือเส้นโค้ง
            กราฟแบบมีทิศทางเส้นเอ็จต้องมีลูกศรกำกับแสดงลำดับการเชื่อมต่อ โดยมีโหนดเริ่มต้นและโหนดสิ้นสุด
            กราฟแบบไม่มีทิศทาง เอ็จจะเชื่อมต่อกันแบบไม่สำคัญ คือสามารถเชื่อมต่อไปยังโหนดใดก็ได้ ไม่มีโหนด
            ใดเป็นโหนดแรก และไม่มีโหนดใดเป็นโหนดสิ้นสุด
            การแทนกราฟในหน่วยความจำ
            สิ่งที่ต้องการจัดเก็บก็คือ เอ็จ ซึ่งเป็นเส้นเชื่อมระหว่างโหนดสองโหนด วิธีที่ง่ายคือ การเก็บเอ็จในแถวลำดับ 2 มิติ แต่จะเป็นการเปลืองเนื้อที่เพราะบางเอ็จมีการเก็บซ้ำ แต่สามารถแก้ปัญหานี้ได้โดยมิติแรกเก็บโหนดต่างๆ แล้วใช้พอยเตอร์ชี้ไปยังความสัมพันธ์กับโหนดในมิติ 2 แต่เป็นวิธีที่ยุ่งยาก ไม่เหมาะกับกราฟที่มีการเปลี่ยนแปลงตลอดเวลา กราฟที่มีการเปลี่ยนแปลงตลอดเวลา อาจใช้วิธีแอดจาเซนซีลิสต์ คือการใช้
            ลิงค์ลิสต์ เพื่อความสะดวกในการเปลี่ยนแปลง นอกจากนี้ยังมีวิธีแทนกราฟในความจำหลักอีกวิธีหนึ่งซึ่งเป็นที่นิยมใช้กันมากที่สุดคือ การแทนด้วยแอดจาเซนซีเมทริกซ์ โดยที่ถ้ากราฟ L มีทั้งหมด nโหนด แอดจาเซนซีเมทริกซ์เป็นเมทริกซ์จัตุรัสขนาด n*n วิธีนี้สามารถหาจำนวนเส้นทางได้ว่ามีกี่จำนวนเส้นทาง
            การท่องไปในกราฟ
            เป็นการไปเยือนโหนดในกราฟ ซึ่งแต่ละโหนดจะถูกเยือนเพียงครั้งเดียว แต่กราฟนั้นมาหลายเส้นทางเมื่อเยือนแล้วต้องทำเครื่องหมายว่าได้เยือนเรียบร้อย การท่องไปในกราฟมี 2 แบบ คือ
            1.การท่องแบบกว้าง เป็นการกำหนดโหนดที่จะเยือนหรือโหนดเริ่มต้นแล้วทำการเยือนไปยังโหนดที่ใกล้เคียงจนกระทั่งครบทุกโหนด
            2.การท่องแบบลึก โดยกำหนดเริ่มต้นที่โหนดแรกแล้วเยือนโหนดถัดไปตามแนววิถีจนถึงปลายวิถี แล้วย้อนกลับมาเพื่อเยือนโหนดอื่นๆ

            DTS 08-26/08/52

            สรุป ทรี
            โครงสร้างข้อมูลแบบทรี เป็นโครงสร้างข้อมูลที่ความสัมพันธ์ ระหว่างโหนดจะมีความสัมพันธ์ลดหลั่นกันเป็นลำดับชั้น ได้มีการนำรูปแบบทรีไปประยุกต์ใช้งานต่างๆอย่างแพร่หลาย
            ทรี หรือโครงสร้างข้อมูลแบบต้นไม้ ประกอบด้วยโหนด (node) ซึ่งเป็นส่วนที่เก็บข้อมูล ในทรีหนึ่งทรีจะประกอบไปด้วยรูทโหนด (root node) เพียงหนึ่งโหนด แล้วรูทโหนดสามารถแตกโหนดออกเป็นโหนดย่อยๆ ได้อีกหลายโหนดเรียกว่าโหนดลูก (Child node) เมื่อมีโหนดลูกแล้ว โหนดลูกก็ยังสามารถแสดงเป็นโหนด
            พ่อแม่ (Parent Node) โดยการแตกโหนดออกเป็นโหนดย่อยๆได้อีก
            Binary TreeBinary Tree
            มีลักษณะเหมือนกับ Tree ปกติแต่มีคุณสมบัติพิเศษ คือ “แต่ละโหนดจะมีโหนดลูกได้ไม่เกิน 2 โหนด” หรือพูดอีกนัยหนึ่งก็คือ แต่ละโหนดใน binary tree จะมีดีกรีได้ไม่เกิน2
            การแปลงทรีทั่วไปให้เป็นไบนารีทรี
            ขั้นตอนการแปลงทรีทั่วๆไป1.ให้โหนดแม่ชี้ไปยังโหนดลูกคนโต แล้วลบความสัมพันธ์ระหว่างโหนดแม่และดหนดลูกอื่นๆ2.ให้เชื่อมความสัมพันธ์ระหว่างโหนดพี่น้อง3.จับให้ทรีย่อยทางขวาเอียงลงมา 45 องศา
            การท่องไปในทรีเพื่อเข้าไปเยือนทุกๆโหนดในทรี ซึ่งวิธีการท่องเข้าไปต้องเป็นไปอย่างมีระบบแผน สามารถเยือนโหนดทุกๆโหนดๆละนึ่งครั้ง
            1.การท่องไปแบบพรีออร์เดอร์ การเดินเข้าไปเยือนโหนดต่างๆในทรีด้วยวิธี NLR
            1. เยือนดหนดราก
            2. ท่องไปในทรีย่อยทางซ้ายแบบพรีออร์เดอร์
            3. ท่องไปในทรีย่อยทางขวาแบบพรีออร์เดอร์
            2.การท่องไปแบบอินออร์เดอร์ เป็นการเดินไปเยือนโหนดต่างๆในทรีด้วยวิธี LNR
            1.ท่องไปในทรีย่อยทางซ้ายแบบอินออร์เดอร์
            2.เยือนโหนดราก
            3.ท่องไปในทรีย่อยทางขวาแบบอินออร์เดอร์
            3.การท่องไปแบบโพสออร์เดอร์ เป็นการเดินไปเยือนโหนดต่างๆ ในทรีด้วยวิธี LRN
            1.ท่องไปในทรีย่อยซ้ายแบบโพสออร์เดอร์
            2.ท่องไปในทรีย่อยขวาแบบโพสออร์เดอร์
            3.เยือนโหนดราก

            DTS 07-05/08/52

            สรุป เรื่อง Queue
            คิวเป็นโครงสร้างข้อมูลแบบลำดับ (Sequential) ลักษณะของคิวเราสามารถพบได้ในชีวิตประจำวัน เช่น การเข้าแถวตามคิวเพื่อรอรับบริการต่างๆ ลำดับการสั่งพิมพ์งาน เป็นต้น ซึ่งจะเห็นได้ว่าลักษณะของการทำงานจะเป็นแบบใครมาเข้าคิวก่อน จะได้รับบริการก่อน เรียกได้ว่าเป็นลักษณะการทำงานแบบ FIFO (First In , First Out) ลักษณะของคิว จะมีปลายสองข้าง ซึ่งข้างหนึ่งจะเป็นช่องทางสำหรับข้อมูลเข้าที่เรียกว่า REAR และอีกข้างหนึ่งซึ่งจะเป็นช่องทางสำหรับข้อมูลออก เรียกว่า FRONT
            การสร้างคิว (Queue) คิวที่อยู่ในคอมพิวเตอร์สามารถจัดเก็บได้หลายลักษณะ แต่โดยทั่วไปแล้วจะใช้การจัดเก็บแบบลิงค์ลิสท์เดี่ยวหรือจัดเก็บโดยใช้อาร์เรย์ ก่อนที่จะทำการสร้างคิวจะต้องทำความเข้าใจถึงโครงสร้างของคิว ซึ่งประกอบไปด้วย ตัวคิว ซึ่งในที่นี้ขอแทนด้วยอาร์เรย์ และจะต้องมีตัวชี้อีก 2 ตัว ได้แก่ ตัวชี้ F (Front Pointer) ชี้ไปที่สมาชิกตัวแรก และตัวชี้ R (Rear Pointer) ชี้ไปที่สมาชิกตัวสุดท้ายของคิว โดยที่เวลาข้อมูลจะเข้าสู่คิวจะเข้าทาง R ส่วนเวลาที่ข้อมูลจะออกจากคิวจะออกทาง
            ในการทำงานกับคิวที่ต้องมีการนำข้อมูลเข้าและออกนั้น จะต้องมีการตรวจสอบว่าคิวว่างหรือไม่ เมื่อต้องการนำข้อมูลเข้า เพราะหากคิวเต็มก็จะไม่สามารถทำการนำข้อมูลเข้าได้ เช่นเดียวกัน เมื่อต้องการนำข้อมูลออกก็ต้องตรวจสอบด้วยเช่นกัน ว่าในคิวมีข้อมูลอยู่หรือไม่ หากคิวไม่มีข้อมูลก็จะไม่สามารถนำข้อมูลออกได้เช่นกัน การInsertion เป็นการนำข้อมูลเข้าสู่คิว โดยการที่จะนำข้อมูลเข้าสู่คิวนั้นจะแบ่งออกเป็น 2 กรณี คือ
            1. การนำข้อมูลเข้าไปในคิวว่าง โดยจะต้องดำเนินการให้พอยน์เตอร์ทั้ง 2 คือ F และ R ชี้ไปยังช่องแรกหรือตำแหน่งที่จะเก็บข้อมูลแรก
            2. การนำข้อมูลเข้าไปในคิวต่อจากข้อมูลเดิม จะต้องจัดการให้พอยน์เตอร์ R ชี้ไปยังช่องหรือตำแหน่งของข้อมูลที่นำเข้าไป ส่วนพอยน์เตอร์ F ยังคงชี้ไปยังช่องหรือตำแหน่งของข้อมูลที่นำเข้าไปเป็นข้อมูลแรก
            การ Deletion
            เป็นการนำข้อมูลที่เก็บอยู่ในคิวออกจากคิว โดยการเมื่อทำการ Deletion ข้อมูลนั้นออกจากคิวแล้ว จะต้องมีการจัดการให้ตัวชี้คิว F ชี้ไปยังช่องหรือตำแหน่งต่อจากข้อมูลที่จะได้ทำการ Deletion ไปแล้ว ส่วนพอยน์เตอร์ R ชี้ไปยังช่องข้อมูลสุดท้ายเหมือนเดิมการ Deletion ข้อมูลนี้จะทำการนำข้อมูลในส่วนของข้อมูลตัวแรกสุดที่เข้าสู่คิวออกไปทำงานตามต้องการ แต่การ Deletion ข้อมูลนี้จะไม่สามารถ Deletion ข้อมูลออกจากคิวที่ว่างเปล่าหรือไม่มีข้อมูลได้ (F = 0) ถ้าเกิดกรณีเช่นนี้จะเกิด Error ที่เรียกว่า Underflow ขึ้น ฉะนั้นก่อนที่จะทำการ Deletion ควรที่จะต้องมีการตรวจสอบว่าคิวว่างหรือไม่ เพื่อไม่ให้เกิด Error นี้ขึ้น
            การประยุกต์ใช้งานคิวในการจำลองแบบการจำลองแบบ (Simulation) หมายถึง การใช้ระบบหนึ่งเพื่อเลียนแบบพฤติกรรมของอีกระบบหนึ่ง ใช้งานเมื่อการทดลองด้วยระบบจริงๆ มีค่าใช้จ่ายสูง หรือเสี่ยงต่ออันตราย การจำลองแบบของคอมพิวเตอร์ จะใช้ขั้นตอนการทำงานของโปรแกรม เพื่อการเลียนแบบพฤติกรรมของระบบที่เราต้องการศึกษาการจำลองแบบของระบบแบ่งกันใช้เวลาระบบคอมพิวเตอร์ที่มีการทำงานแบบแบ่งกันใช้เวลา เป็นระบบที่มีผู้ใช้เครื่องคอมพิวเตอร์พร้อมกันในเวลาเดียวกัน โดยระบบมีหน่วยผลกลาง (ซีพียู) และหน่วยความจำหลักเพียงอย่างละ 1 เท่านั้น ผู้ใช้หลายๆ คนนี้ จะต้องมีการใช้หน่วยความจำหลักและหน่วยประมวลผลกลางร่วมกัน ซึ่งอนุญาติให้ผู้ใช้แต่ละคนประมวลผลโปรแกรม (ใช้ทรัพยากรของระบบ) ในเวลาหนึ่งๆ แล้วก็จะให้ผู้ใช้คนต่อไปใช้จนกว่าจะวนกลับมายังผู้ใช้คนแรกอีก วิธีการประมวลผลร่วมกันระหว่างผู้ใช้หลายๆ คน เราเรียกว่า ระบบแบ่งกันใช้เวลา (Time sharing) ซึ่งลักษณะการใช้ซีพียูจะเป็นไปตามลำดับคือ “มาก่อนได้ก่อน” (first – come – first – serve) และมีลำดับการทำงานดังนี้1. เมื่อโปรแกรมขอใช้เวลาซีพียู โปรแกรมนั้นจะถูกนำไปต่อท้ายคิวประมวลผล2. โปรแกรมที่อยู่ต้นคิวจะถูกส่งไปทำงาน และยังคงอยู่ที่ต้นคิวจนกว่าจะใช้ซีพียูเสร็จ3. เมื่อรันโปรแกรมทำงานเสร็จตามเวลาการขอใช้ซีพียู ก็จะถูกนำออกจากคิว และจะไม่ถูกนำกลับมาอีก จนกว่าจะมีการขอใช้ซีพียูครั้งใหม่ (จึงจะกลับไปที่ข้อ 1. อีก)การจำลองแบบสนามบินการเขียนโปรแกรมเพื่อจำลองแบบของสนามบิน จะใช้โครงสร้างข้อมูลแบบคิว แทนคิวของเครื่องบินที่จะรอขึ้นหรือรอลง แต่คอนข้างเป็นโปรแกรมที่ซับซ้อน ดังสภาพความเป็นจริงที่ว่า สนามบินมีขนาดเล็กแต่มีเครื่องบินขึ้นลงจำนวนมาก มีทางวิ่ง (runway) เพียงทางเดียว ดังนั้น ณ เวลาใด ๆ เครื่องบิน จะต้องขึ้นหรือลงอย่างใดอย่างหนึ่งเท่านั้น และเพียงเครื่องเดียวด้วย ในเวลาที่เครื่องบินซึ่งพร้อมจะขึ้นหรือลงมาถึงสนามบิน สนามบินนั้นอาจจะว่างหรือมีเครื่องบินอื่นกำลังขึ้นหรือลงอยู่ก็ได้ และอาจจะมีเครื่องบินหลายลำที่รอขึ้นและรอลง จึงมีคิว 2 คิวเกิดขึ้น คือ คิวขึ้น (takeoff) และคิวลง ( landing) ในการรอนั้นบนพื้นจะดีกว่าบนอากาศ ดังนั้นจึงให้เครื่องบินขึ้นได้ก็ต่อเมื่อไม่มีเครื่องบินลง หลักจากได้รับสัญญาณร้องขอจากเครื่องบินลำใหม่เพื่อจะลงหรือขึ้น โปรแกรมการจำลองแบบจะให้บริการเครื่องบินที่อยู่ในตำแหน่งหัวคิวของคิวลงก่อน และถ้าคิวลงว่าง จึงอนุญาตให้เครื่องบินในคิวขึ้นขึ้นได้ โปรแกรมจำลองแบบนี้สามารถจะทำงานได้ตลอดเวลา

            วันอังคารที่ 4 สิงหาคม พ.ศ. 2552

            DTS 06-29/07/52

            สรุป
            โดยโอเปอเรเตอร์ก็คือเครื่องหมายการคำนวณต่างๆ
            เช่น + - * / ในขณะที่ตัวโอเปอแรนด์ซึ่งเป็นตัวถูกดำเนินการนั้น
            อาจเป็นได้ทั้งตัวแปรหรือค่าคงที่ใดๆ โดยนิพจน์ทางคณิตศาสตร์
            สามารถนำเสนอให้แตกต่างกันได้ถึง 3 รูปแบบ ด้วยกัน ดังนี้
            1. นิพจน์ Infix
            นิพจน์คณิตศาสตร์ที่อยู่ในรูปแบบของ Infix นั้น ก็คือนิพจน์
            โดยทั่วไปที่เรามักใช้กับการคำนวณสูตรตัวเลขต่างๆ โดย
            โอเปอเรเตอร์จะอยู่ระหว่างตัวโอเปอแรนด์

            2. นิพจน์ Postfix
            นิพจน์คณิตศาสตร์ที่อยู่ในรูปแบบของ Postfix นั้น คือ
            นิพจน์ในรูปแบบที่โอเปอเรเตอร์จะอยู่ข้างหลังตัวโอเปอแรนด์

            3. นิพจน์ Prefix
            นิพจน์คณิตศาสตร์ที่อยู่ในรูปแบบของ Prefix จะตรงกันข้าม
            กับ Postfix โดยจะนำโอเปอเรเตอร์ไปไว้อยู่ข้างหน้าตัวโอเปอแรนด์

            สำหรับนิพจน์ทั้งสามรูปแบบ สามารถแสดงได้ตามตัวอย่างข้างล่างดังนี้
            Prefix : +AB
            Infix : A+B
            Postfix : AB+

            อัลกอริทึมการแปลงนิพจน์ Infix มาเป็นนิพจน์ Postfix มีขั้นตอน ดังนี้
            1. ถ้าข้อมูลเข้าเป็นโอเปอแรนด์ ให้เอาต์พุตไป Postfix

            2. ถ้าข้อมูลเข้าเป็นโอเปอเรเตอร์
            2.1 ถ้าสแตกว่าง ให้ push ลงในสแตก
            2.2 ถ้าภายในสแตกมีข้อมูลอยู่ ให้ทำการเปรียบเทียบ ดังนี้
            2.3 ถ้าโอเปอเรเตอร์ที่อินพุตเข้ามามีลำดับความสำคัญน้อยกว่า
            หรือเท่ากับ โอเปอเรเตอร์ที่อยู่ส่วนบนของสแตก ให้ดำเนินการ pop
            สแตกออกไปที่ postfix โดยทำการเปรียบเทียบกับโอเปอเรเตอร์ที่มี
            อยู่ในสแตกไปเรื่อยๆ จนกระทั่งโอเปอเรเตอร์ที่อินพุตเข้ามามีลำดับ
            ความสำคัญมากกว่าโอเปอเรเตอร์ในสแตก จากนั้นให้ดำเนินการ push
            โอเปอเรเตอร์ที่อินพุตเข้ามาลงในสแตก
            2.4. ถ้าโอเปอเรเตอร์ที่อินพุตเข้ามามีลำดับความสำคัญมากกว่า
            โอเปอเรเตอร์ที่อยู่ส่วนบนของสแตกให้ดำเนินการ push โอเปอเรเตอร์
            นั้นลงในสแตก

            3. ถ้าข้อมูลเข้าเป็นเครื่องหมายวงเล็บเปิด ให้ดำเนินการ push
            ลงในสแตก

            4. ถ้าข้อมูลเข้าเป็นเครื่องหมายวงเล็บปิด ให้ดำเนินการ pop สแตก
            ไปยัง postfix จนกระทั่งพบเครื่องหมายวงเล็บเปิด จากนั้นให้นำ
            เครื่องหมายวงเล็บทั้งสองทิ้งไป

            5. หากดำเนินการจนเสร็จสิ้นแล้วยังคงมีข้อมูลอยู่ในสแตก ให้ดำเนินการ
            pop สแตกที่เหลืออยู่ทั้งหมดไปที่ postfix

            วันเสาร์ที่ 1 สิงหาคม พ.ศ. 2552

            DTS 05-22/07/52

            สรุป
            สแตก(Stack)เป็นโครงสร้างข้อมูลแบบลิเนียร์ลิสต์(linear list)
            ที่สามารถนำข้อมูลเข้าหรือออกได้ทางเดียวคือส่วนบนของสแตกหรือ
            หรือเรียกว่า ท๊อปของสแตก (Top Of Stack) ซึ่งคุณสมบัติดังกล่าว
            เรียกว่า ไลโฟลิสต์ (LIFO list: Last-In-First-Out list)หรือ
            พูชดาวน์ลิสต์ (Pushdown List) คือสมาชิกที่เข้าลิสต์ที่หลังสุด
            จะได้ออกจากลิสต์ก่อน หรือ เข้าหลังออกก่อน การเพิ่มข้อมูลเข้า
            สแตกจะเรียกว่าพูชชิ่ง (pushing) การนำข้อมูลจากสแตกเรียกว่า
            ป๊อปปิ้ง (poping) การเพิ่มหรือลบข้อมูล ในสแตกทำที่ท๊อปของสแตก
            ท๊อปของสแตกนี้เองเป็นตัวชี้สมาชิกตัวท้ายสุดของสแตก


            สแตกจะประกอบด้วยกระบวนการ 3 กระบวนการ คือ

            1. Push คือ การนำข้อมูลใส่ในสแตก และสามารถตรวจสอบว่าสแตกเต็ม
            หรือไม่ ถ้าไม่เต็มสามารถเพิ่มข้อมูลลงไปได้ แล้วปรับตัวชี้ตำแหน่งให้ไป
            ชี้ที่สแตกว่าง ถ้าเต็ม (Stack Overflow)ก็ไม่สามารถเพิ่มข้อมูลได้

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

            3. Stack Top คือ การคัดลอกข้อมูลที่อยู่บนสุดของสแตก แต่ไม่ได้นำ
            ข้อมูลออกจากสแตก

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

            1. การส่งการบ้านอาจารย์ เอามาวางซ้อนกันขึ้นเรื่อยๆ ใครส่งช้าก็ได้ตรวจก่อน

            2. ตอนที่กินน้ำใน บิ๊กซี แก้วน้ำจะเป็นกรวยสีขาว

            3. ตอนที่พนักงานตักไอศครีม ต้องตักข้างบนก่อน

            4. ตอนที่เก็บเสื้อผ้าใส่กระเป๋าเดินทาง ตัวที่พับที่หลัง เมื่อเปิดกระเป๋าก็จะถูก
            หยิบออกมาก่อน

            5. ซื้อเมนทอลเป็นแท่งในเซเว่น เม็ดที่ถูกผลิตก่อนจะใส่ลงไปก่อนเวลาที่เรา
            เปิดทาน เราจะได้ทานเม็ดที่เข้าที่หลัง

            6. ขนมปังของฟาร์มเฮาร์ที่เป็นแผ่นเปล่า ถูกเรียงกันขึ้นเป็นหลายสิบแผ่นแต่
            แผ่นที่ผลิดก่อนจะอยู่ข้างล่าง แผ่นที่ผลิตที่หลังจะอยู่ด้านบนเวลาเราทานก็
            จะเปิดทานที่ด้านบนก่อน

            DTS 04-15/07/52

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


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

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

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

            ฟังก์ชัน stdio.h และ iostream.h

            #include
            #include // clrscr();
            void input () ;
            void menu () ;
            void showEmp();
            int i;
            int n;
            int iEmp=1;
            int number;
            char select;
            struct name {
            char name[30];
            char surname[40];
            int age;
            char position[40];
            int height;
            int weight;
            char status[10];
            char birthday[40];
            }name1[50];
            main()
            {
            while (select != '3'){
            menu();
            if (select == '1')
            {
            input();
            number++;
            }
            else if (select == '2')
            {
            showEmp();
            }
            else if (select == '3')
            break;
            else
            {
            clrscr();
            printf("=======================\n");
            printf("You Insert Wrong Choice\n");
            printf("=======================\n");
            printf("Press any key to continue...");
            fflush(stdin);
            scanf("%c",select);
            clrscr();
            }
            }
            clrscr();
            printf("Thanks");
            return 0;}
            void input(void)
            {
            clrscr();
            printf(" ======== Insert Profile ======== \n");
            printf("Name : ");
            scanf("%s",&name1[iEmp].name);
            printf("Surname :");
            scanf("%s",&name1[iEmp].surname);
            printf("Age : ");
            scanf("%d",&name1[iEmp].age);
            printf("Position : ");
            scanf("%s",&name1[iEmp].position);
            printf("Height : ");
            scanf("%d",&name1[iEmp].height);
            printf("Weight : ");
            scanf("%d",&name1[iEmp].weight);
            printf("Status : ");
            scanf("%s",&name1[iEmp].status);
            printf("Birthday : ");
            scanf("%s",&name1[iEmp].birthday);
            iEmp++;
            clrscr();
            }
            void menu(void)
            {
            printf("Please Select Menu\n");
            printf("==================\n\n");
            printf("1.Insert Employee\n");
            printf("2.List of Employee\n");
            printf("3.Exit Program\n");
            printf("> ");
            fflush(stdin);
            scanf("%c",&select);
            }
            void showEmp(void)
            {
            clrscr();
            printf("Number Of Employee : %d \n\n",number);
            n=1;
            i=1;
            printf("=====================\n");
            while (i ");fflush(stdin);
            scanf("%c",&select); // any key to continueclrscr();
            }

            #include // cin cout
            #include // clrscr();
            void input () ;
            void menu () ;
            void showEmp();
            int i;
            int n;
            int iEmp=1;
            int number;
            char select;
            struct name {char name[30];
            char surname[40];
            int age;
            char position[40];
            int height;
            int weight;
            char status[10];
            char birthday[40];
            }name1[50];
            main()
            {
            while (select != '3')
            {
            menu();
            if (select == '1')
            {
            input();
            number++;
            }
            else if (select == '2')
            {
            showEmp();
            }
            else if (select == '3')
            break;
            else
            {
            clrscr();
            cout<<"=======================\n"; cout<<"You Insert Wrong Choice\n"; cout<<"=======================\n"; cout<<"Press any key to continue..."; cin>>select;clrscr();
            }
            }
            clrscr();
            cout<<"Thanks"; return 0;} void input(void) { clrscr(); cout<<" ======== Insert Profile ======== \n"; cout<<"Name : "; cin>>name1[iEmp].name;
            cout<<"Surname :"; cin>>name1[iEmp].surname;
            cout<<"Age : "; cin>>name1[iEmp].age;cout<<"Position : "; cin>>name1[iEmp].position;cout<<"Height : "; cin>>name1[iEmp].height;cout<<"Weight : "; cin>>name1[iEmp].weight;cout<<"Status : "; cin>>name1[iEmp].status;cout<<"Birthday : "; cin>>name1[iEmp].birthday;
            iEmp++;
            clrscr();
            }
            void menu(void)
            {
            cout<<"Please Select Menu\n"; cout<<"==================\n\n"; cout<<"1.Insert Employee\n"; cout<<"2.List of Employee\n"; cout<<"3.Exit Program\n"; cout<<"> ";cin>>select;}
            void showEmp(void)
            {
            clrscr();
            cout<<"Number Of Employee :"< ";
            cin>>select; // any key to continue
            clrscr();
            }