บทที่ 14 linked list stack queue
จบบทนี้ น้องจะสร้างโครงสร้างข้อมูลพื้นฐานสามแบบได้เองด้วยภาษา C คือ linked list ที่แทรกและลบตรงกลางได้โดยไม่ต้องเลื่อนข้อมูล stack ที่ของเข้าทีหลังออกก่อน และ queue ที่มาก่อนได้ก่อน แล้วเอาไปแก้โจทย์ที่ใช้อาเรย์ธรรมดาแล้วช้าหรือยุ่งเกินไป เช่น ตรวจวงเล็บในสูตร คำนวณนิพจน์ จำลองคิวร้านค้า และโปรแกรมพิมพ์ข้อความที่มีเคอร์เซอร์ ทั้งหมดนี้อยู่ในหลักสูตรค่าย 1 ของ สอวน. ในบทที่ 17 จะมีของสำเร็จรูปใน C++ ให้ใช้แทน แต่คนที่เคยเขียนเองจะรู้ว่าแต่ละงานเร็วหรือช้าเพราะอะไร และเขียนแบบที่ของสำเร็จรูปไม่มีให้ได้
ในบทนี้
| หน้า | ได้อะไร |
|---|---|
| 14.1 linked list | node กับ next สร้างลิสต์ด้วย malloc เพิ่มที่หัวและท้าย เดินลิสต์ ค้นหา และ free ทั้งลิสต์ |
| 14.2 แทรก ลบ และกลับลำดับ | เปลี่ยน next ให้ถูกลำดับ ลบตัวหัวที่เป็นกรณีพิเศษ และกลับลิสต์ด้วยสาม pointer |
| 14.3 ลิสต์ด้วยอาเรย์ | เลือกระหว่างอาเรย์กับ linked list ทำลิสต์ด้วย next[] แบบที่คนแข่งใช้ และลิสต์สองทางที่ไม่มีกรณีพิเศษ |
| 14.4 stack | stack ด้วยอาเรย์ กลับคำ ตรวจวงเล็บหลายชนิด คำนวณ postfix และ pop ตอนว่าง |
| 14.5 queue และ deque | queue ด้วยอาเรย์ circular queue จำลองร้านที่เก้าอี้จำกัด deque และบั๊กที่เจอบ่อย |