ในโลกปัจจุบันที่ข้อมูลและการเข้าถึงข้อมูลที่รวดเร็วเป็นพลังสำคัญของธุรกิจและการวิจัย การมีทักษะในการจัดการข้อมูลด้วยวิธีที่มีประสิทธิภาพจึงเป็นเรื่องสำคัญมาก ภาษาโปรแกรม Fortran ซึ่งเป็นหนึ่งในภาษาคอมพิวเตอร์ที่เก่าแก่ที่สุด ถึงแม้ว่าจะถูกมองว่าล้าสมัยในบางแง่มุม แต่ก็ยังคงถูกใช้งานอย่างกว้างขวางในวงการวิทยาศาสตร์และวิศวกรรมเนื่องจากความเร็วและประสิทธิภาพ หนึ่งในโครงสร้างข้อมูลที่มีความยืดหยุ่นและทรงพลังคือ Doubly Linked List
ก่อนที่เราจะเข้าไปยังตัวอย่างโค้ด มารู้จักกับ Doubly Linked List กันก่อน Doubly Linked List เป็นโครงสร้างข้อมูลที่ประกอบไปด้วยโหนดซึ่งแต่ละโหนดจะมีการเชื่อมถึงกันทั้งสองทิศทาง: to the next และ previous node ซึ่งทำให้สามารถเดินทางผ่านรายการได้ทั้งไปและกลับ แตกต่างจาก Singly Linked List ที่สามารถเดินทางได้เพียงทิศทางเดียว
1. เสรีภาพในการเดินทางไปยังทั้งหน้าและหลังสูง
2. การลบโหนดสามารถทำได้ง่ายกว่าเพราะไม่ต้องนำ previous โหนดมาค้นหา
3. สามารถวนลูปได้จากปลายทางกลับไปยังจุดเริ่มต้น
4. ประโยชน์มากในการประยุกต์ใช้พื้นที่คำนวณหลายมิติ
1. ใช้พื้นที่เพิ่มเนื่องจากต้องเก็บ reference สำหรับทั้งโหนดถัดไปและโหนดก่อนหน้า
2. โครงสร้างที่ซับซ้อนยิ่งขึ้นเมื่อเทียบกับ Singly Linked Lists
ตัวอย่างโค้ดสำหรับการทำงานบางอย่างบน Doubly Linked List ใน Fortran คือ:
! ขนาดประกาศโครงสร้างข้อมูลให้สมเหตุสมผล
! โครงสร้างหลักสำหรับ Doubly Linked List
type Node
integer :: data
type(Node), pointer :: next => null()
type(Node), pointer :: prev => null()
end type Node
! สร้าง Doubly Linked List ค่าเริ่มต้น
type(Node), pointer :: head => null(), tail => null()
! Insert (ตัวอย่างการใส่ข้อมูลในโหนด)
subroutine insertAfter(node, data)
type(Node), pointer :: node
integer, intent(in) :: data
type(Node), pointer :: newNode
! Allocate หน่วยความจำสำหรับโหนดใหม่
allocate(newNode)
newNode%data = data
! เชื่อมโยงกับลิสต์
if (associated(node%next)) then
newNode%next => node%next
node%next%prev => newNode
else
! เป็นรายการสุดท้าย
tail => newNode
endif
newNode%prev => node
node%next => newNode
end subroutine insertAfter
! ...
! ที่นี่เราจะแสดงการอัพเดท, การค้นหา, หรือลบโหนดในลักษณะเดียวกัน
! ฟังก์ชันอัพเดท, ค้นหาหรือลบจะตามมาทีหลัง
! พยายามให้เข้าใจ concept ก่อนการต่อเติมเพื่อเห็นภาพในการประยุกต์ใช้งาน
การทำงานแต่ละอย่างบน Doubly Linked List ก็จะมีลักษณะเฉพาะตัว การใส่ (insert) ที่ให้โค้ดไว้ข้างต้นนั้น ก็จะทำการแทรกโหนดใหม่หลังจากโหนดที่มีอยู่ ทุกครั้งที่เราใส่ ข้อมูลชิ้นใหม่เข้าไป เราจะต้องปรับปรุงค่า next และ prev ของโหนดให้มีความถูกต้อง
การอัพเดท (update) ข้อมูลในโหนด, การค้นหา (find) ค่าภายในโหนดที่ต้องการ, และการลบ (delete) โหนดที่ไม่ต้องการออกจากลิสต์ เป็นสิ่งที่จะตามมาหลังจากเราเสร็จสิ้นการศึกษาเกี่ยวกับการใส่ข้อมูลเบื้องต้น
ประเด็นสำคัญคือ แม้แต่ในภาษาโปรแกรมเชิงวิทยาศาสตร์เก่าๆ อย่าง Fortran ก็สามารถทำการจัดการข้อมูลได้อย่างยืดหยุ่น และเป็นประโยชน์มาก หากคุณมีความสนใจที่จะเข้าใจเทคนิคด้านการจัดการข้อมูลที่ลึกซึ้งยิ่งขึ้น การเรียนรู้ที่ EPT นั้นพร้อมที่จะให้ความรู้และทักษะที่จำเป็นในการก้าวเข้าสู่โลกการเขียนโปรแกรมและประมวลผลข้อมูลได้อย่างมืออาชีพและรวดเร็วยิ่งขึ้น
ณ EPT นั้นเราพร้อมที่จะให้คำแนะนำการใช้เทคนิคและทักษะที่สำคัญเหล่านี้แก่นักพัฒนาทุกคน ไม่ว่าจะเป็นผู้เริ่มต้นหรือผู้มีประสบการณ์ เพื่อให้คุณสามารถพัฒนาและจัดการข้อมูลของคุณได้อย่างมีประสิทธิภาพและไร้ขีดจำกัด
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM