รายละเอียด

โครงสร้างข้อมูลและขั้นตอนวิธี / Data Structures and Algorithms

  • 17 สัปดาห์
  • จำนวนนักศึกษา 0 คน
  • อาจารย์ผู้สอน 1 คน

ข้อมูลรายวิชา

  • รหัสรายวิชา : ENGCE103
  • ชื่อรายวิชา(TH) : โครงสร้างข้อมูลและขั้นตอนวิธี
  • ชื่อรายวิชา (EN) : Data Structures and Algorithms
  • เทอม / ปีการศึกษา : 2/2562

รายละเอียด

โครงสร้างข้อมูลและขั้นตอนวิธี (Data Structures and Algorithms)

ศึกษาและฝึกปฏิบัติการเกี่ยวกับการแทนข้อมูล โครงสร้างและการออกแบบข้อมูล แบบอาร์เรย์ สแต็ก คิว ลิงค์ลิสต์ ต้นไม้ กราฟ การจัดเรียงข้อมูล การค้นหาข้อมูล การวิเคราะห์ขั้นตอนวิธี

รายวิชา - โครงสร้างข้อมูลและขั้นตอนวิธี

การจัดเก็บข้อมูลจำนวนเต็ม จำนวนจริง ตรรกะ ตัวอักษร และความสำคัญของโครงสร้างข้อมูล
- โครงสร้างและการเข้าถึงหน่วยความจำ
- เซกเมนต์ และ ออฟเซต
- พอยน์เตอร์
- การแทนข้อมูลจำนวนเต็มแบบไม่คิดเครื่องหมาย
- การแทนข้อมูลจำนวนเต็มแบบคิดเครื่องหมายโดยวิธี Sign-magnitude
- การแทนข้อมูลจำนวนเต็มแบบคิดเครื่องหมายโดยวิธี Two’s Complement
- ผลกระทบทางการคำนวณเมื่อแทนข้อมูลจำนวนเต็มโดยวิธี Sign-magnitude และ Two’s Complement
- การแทนข้อมูลจำนวนจริงแบบ Fix-point
- การแทนข้อมูลจำนวนจริงแบบ Floating-point
- การแทนข้อมูลตรรกะ
- การแทนข้อมูลแบบอักษร
- ความสำคัญของโครงสร้างข้อมูล

กิจกรรม : บรรยาย / อภิปราย / สื่อ PowerPoint / ฝึกปฏิบัติ

โครงสร้างและขั้นตอนวิธีของข้อมูลแบบเชิงเส้น แบบอาร์เรย์
- การอ้างอิงแกนของอาร์เรย์ตามมาตรฐาน
- โครงสร้างข้อมูลแบบอาร์เรย์ 1 มิติ และการหาสมการเพื่อคำนวณหาตำแหน่งเก็บในหน่วยความจำ
- โครงสร้างข้อมูลแบบอาร์เรย์ 2 มิติ และการหาสมการเพื่อคำนวณหาตำแหน่งเก็บในหน่วยความจำแบบ
o Row major
o Column major
- โครงสร้างข้อมูลแบบอาร์เรย์ 3 มิติ และการหาสมการเพื่อคำนวณหาตำแหน่งเก็บในหน่วยความจำแบบ
o Plane Row Column
o Plane Column Row
o Row Plane Column
o Row Column Plane
o Column Plane Row
o Column Row Plane
- ความสำคัญของอาร์เรย์

กิจกรรม : บรรยาย / อภิปราย / สื่อ PowerPoint / ฝึกปฏิบัติ

โครงสร้างและขั้นตอนวิธีของสแต็ก (Stack) และคิว(Queue)
- ความหมาย คุณสมบัติ ของสแต็ก(Stack)
- การสร้าง การทำงาน และขั้นตอนวิธีของสแต็ก(Stack)
o ขั้นตอนการ PUSH
o ขั้นตอนการ POP
- ความหมาย คุณสมบัติของคิวธรรมดา(Queue)
- การสร้าง การทำงาน ขั้นตอนวิธีของคิวธรรมดา(Queue)
o ขั้นตอนการ Insert
o ขั้นตอนการ Delete
- การสร้าง การทำงาน ขั้นตอนวิธีของคิววงกลม(Circular Queue)
o ขั้นตอนการ Insert
o ขั้นตอนการ Delete
- การทำงานของ DE-Queue
- การทำงานของ Priority Queue

กิจกรรม : บรรยาย / อภิปราย / สื่อ PowerPoint / ฝึกปฏิบัติ

นิพจน์อินฟิกส์ โพสฟิกส์ การหาค่าผลลัพธ์นิพจน์โพสฟิกส์ การเขียนโปรแกรมเรียกตนเอง (Recursive)
- ลักษณะของนิพจน์อินฟิกส์และโพสฟิกส์
- การแปลงนิพจน์อินฟิกส์เป็นโพสฟิกส์
- การหาค่าผลลัพธ์จากนิพจน์โพสฟิกส์
- ลักษณะงานที่เหมาะสมในการเขียนโปรแกรมแบบเรียกตนเอง
- การเรียกตนเองของฟังก์ชั่นแฟกตอเรียล

กิจกรรม : บรรยาย / อภิปราย / สื่อ PowerPoint / ฝึกปฏิบัติ

โครงสร้างข้อมูลแบบลิงค์ลิสต์เดี่ยว และขั้นตอนวิธี
- ความเหมาะสมของงานในการใช้ลิงค์ลิสต์
- โครงสร้างลิงค์ลิสต์เดี่ยว
- การ Allocate และ Free โหนดใน Storage Pool ของลิงค์ลิสต์เดี่ยว
- วิธีการแทรกและลบลิงค์ลิสต์เดี่ยว
- โครงสร้างลิงค์ลิสต์เดี่ยวแบบวงกลม
- วิธีการแทรกและลบลิงค์ลิสต์เดี่ยวแบบวงกลม

กิจกรรม : บรรยาย / อภิปราย / สื่อ PowerPoint / ฝึกปฏิบัติ

โครงสร้างข้อมูลแบบลิงค์ลิสต์คู่ และขั้นตอนวิธี
- โครงสร้างลิงค์ลิสต์คู่
- การ Allocate และ Free โหนดใน Storage Pool ของลิงค์ลิสต์คู่
- การเรียกชื่อตัวชี้ตำแหน่ง ณ จุดต่างๆ ในลิงค์ลิสต์คู่
- วิธีการแทรกและลบลิงค์ลิสต์คู่
- โครงสร้างลิงค์ลิสต์คู่แบบวงกลม
- วิธีการแทรกและลบลิงค์ลิสต์คู่แบบวงกลม

กิจกรรม : บรรยาย / อภิปราย / สื่อ PowerPoint / ฝึกปฏิบัติ

โครงสร้างและขั้นตอนวิธีของข้อมูลแบบต้นไม้ (Tree)
- นิยามและองค์ประกอบของต้นไม้
- ต้นไม้ทั่วไปและต้นไม้ไบนารี่
- การแปลงต้นไม้ทั่วไปเป็นต้นไม้ไบนารี่
- ต้นไม้ไบนารี่สมบูรณ์
- ต้นไม้ที่มีแบบแผนและไม่มีแบบแผน
- การแทนต้นไม้โดยใช้อาร์เรย์
- การแทนต้นไม้โดยใช้พอยน์เตอร์
- การแทนต้นไม้ไบนารี่โดยใช้หลักการเรียงโหนด
- วิธีการท่องแบบ Pre-order, In-Order, Post-Order
- การเขียนโปรแกรมท่องแบบ Pre-order, In-order, Post-order แบบเรียกตนเอง

กิจกรรม : บรรยาย / อภิปราย / สื่อ PowerPoint / ฝึกปฏิบัติ

โครงสร้างข้อมูลกราฟ (Graph)
- องค์ประกอบ และชนิดของกราฟ
- การเชื่อมโยง ( Topology ) ของกราฟ
- การแทนกราฟด้วยแมตริกซ์
- การแทนกราฟโดยใช้วิธี
o Adjacency lists
o Sparse matrix
o Adjacency multi-lists
o Node directory
- การท่องกราฟตามแนวลึก
- การท่องกราฟตามแนวกว้าง

กิจกรรม : บรรยาย / อภิปราย / สื่อ PowerPoint / ฝึกปฏิบัติ

สอบกลางภาค
กิจกรรม : ดำเนินการสอบภาคทฤษฎีตามตารางสอบ

การประยุกต์ใช้โครงสร้างกราฟ
- การหาทางเดินทั้งหมด
- กราฟแบบมีน้ำหนัก(Weighted Graph)
- การแทนกราฟแบบมีน้ำหนัก
- การหาทางเดินที่สั้นที่สุดแบบวิถีเดียวโดยวิธีของดิสตรา (Dijkstra)
- การหาทางเดินที่สั้นที่สุดแบบหลายวิถีโดยวิธีของฟลอยด์ (Floyd)

กิจกรรม : บรรยาย / อภิปราย / สื่อ PowerPoint / ฝึกปฏิบัติ

การเรียงลำดับข้อมูล และขั้นตอนวิธี
- การเรียงลำดับข้อมูลแบบ Insertion Sort
- การเรียงลำดับข้อมูลแบบ Bubble Sort
- การเรียงลำดับข้อมูลแบบ Quick Sort
- การเรียงลำดับข้อมูลแบบ Heap Sort
- การเรียงลำดับข้อมูลแบบ Address Calculation Sort
- การเรียงลำดับข้อมูลแบบ Selection Sort
- การเรียงลำดับข้อมูลแบบ Tree Sort
- การเรียงลำดับข้อมูลแบบ Radix Sort
- การเรียงลำดับข้อมูลแบบ Shell Sort
- การเรียงลำดับข้อมูลแบบ Merge sort

กิจกรรม : บรรยาย / อภิปราย / สื่อ PowerPoint / ฝึกปฏิบัติ

การค้นหาข้อมูล แฮชชิ่ง และขั้นตอนวิธี
- การค้นหาแบบลำดับ (Sequence Search)
- การค้นหาแบบขจัดครึ่ง (Binary Search)
- การคำนวณแฮชชิ่งโดยวิธี Modulo
- การคำนวณแฮชชิ่งโดยวิธี Mid Square
- การคำนวณแฮชชิ่งโดยวิธี Folding
- การคำนวณแฮชชิ่งโดยวิธี Digit Analysis
- การแก้ปัญหาการชนกันของคีย์แบบเชนนิ่งขนาดคงที่ (Static Chaining)
- การแก้ปัญหาการชนกันของคีย์แบบเชนนิ่งขนาดไม่คงที่ (Dynamic Chaining)
- การแก้ปัญหาการชนกันของคีย์แบบ Backward Chaining และแบบ Forward Chaining
- การแก้ปัญหาการชนกันของคีย์แบบรีแฮชชิ่ง

กิจกรรม : บรรยาย / อภิปราย / สื่อ PowerPoint / ฝึกปฏิบัติ

ต้นไม้เพื่อการค้นหา(Binary Search Tree)
- คุณสมบัติของ Binary Search Tree
- การสร้าง Binary Search Tree
- การค้นหาข้อมูลใน Binary Search Tree
- การเพิ่มและลบข้อมูลจาก Binary Search Tree
- Extended Binary Search Tree
- การคำนวณหาค่าเฉลี่ยจำนวนครั้งในการค้นหา(CS,CF)

กิจกรรม : บรรยาย / อภิปราย / สื่อ PowerPoint / ฝึกปฏิบัติ

ต้นไม้เพื่อการค้นหาแบบ AVL-Tree และ B-Tree
- คุณสมบัติของ AVL-Tree
- การคำนวณน้ำหนักประจำโหนด
- วิธีการปรับ AVL Tree แบบ SRR
- วิธีการปรับ AVL Tree แบบ SLR
- วิธีการปรับ AVL Tree แบบ DRR
- วิธีการปรับ AVL Tree แบบ DLR
- วิธีการสร้าง AVL-Tree
- คุณสมบัติของ B-Tree
- วิธีการสร้างและปรับ B-Tree
- วิธีการค้นหาข้อมูลใน B-Tree

กิจกรรม : บรรยาย / อภิปราย / สื่อ PowerPoint / ฝึกปฏิบัติ

การวิเคราะห์ขั้นตอนวิธี
- ลักษณะและความหมายของสัญกรณ์เชิงเส้นกำกับ ,, ,  และ 
- ฟังก์ชันที่ใช้วัดความเร็วของขั้นตอนวิธี
- ความแตกต่างฟังก์ชันที่ใช้วัดความเร็วขั้นตอนวิธี
- การวิเคราะห์เชิงเส้นกำกับ
- การวิเคราะห์ขั้นตอนวิธีแบบต่อเนื่อง
- การวิเคราะห์ขั้นตอนวิธีแบบเงื่อนไข IF..THEN, CASE..OF
- การวิเคราะห์ขั้นตอนวิธีแบบวงวน FOR..NEXT, DO..WHILE, REPEAT..UNTIL

กิจกรรม : บรรยาย / อภิปราย / สื่อ PowerPoint / ฝึกปฏิบัติ

ทบทวน (Reviews)/สอบภาคปฏิบัติ
กิจกรรม : ทบทวน (Reviews)/สอบภาคปฏิบัติ

สอบปลายภาค
กิจกรรม : ดำเนินการสอบภาคทฤษฎีตามตารางสอบ

อาจารย์ผู้สอน