รายละเอียด
โครงสร้างข้อมูลและขั้นตอนวิธี / 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)/สอบภาคปฏิบัติ
 สอบปลายภาค
 กิจกรรม : ดำเนินการสอบภาคทฤษฎีตามตารางสอบ

