การจัดการข้อมูลเป็นหนึ่งในฟังก์ชันหลักของการเขียนโปรแกรมคอมพิวเตอร์ เรามีภาษาการเขียนโค้ดอย่าง COBOL (Common Business-Oriented Language) ที่ถูกออกแบบมาสำหรับงานทางด้านธุรกิจที่มีการประมวลผลข้อมูลจำนวนมหาศาล หนึ่งในโครงสร้างข้อมูลที่มีประโยชน์มากที่สามารถจัดการข้อมูลได้ง่ายและมีประสิทธิภาพคือ Linked List ในบทความนี้เราจะมุ่งเน้นถึงเทคนิคการจัดการข้อมูลด้วย Linked List ในภาษา COBOL โดยจะส่งมอบความรู้พื้นฐานพร้อมตัวอย่างโค้ดจริงสำหรับการสร้าง, ค้นหา(find), ปรับปรุง(update), และลบ(delete) ข้อมูลจาก Linked List นี้
Linked List เป็นโครงสร้างข้อมูลประเภทหนึ่งที่ประกอบด้วยส่วนสำคัญสองส่วนคือ 'ข้อมูล'(data) และ 'ตัวชี้'(pointer) ที่ชี้ไปยังโหนดถัดไป ใน COBOL, โครงสร้างข้อมูลนี้ไม่ได้ถูกนิยามเป็นภาษามาตรฐาน ดังนั้นเราต้องเขียนโค้ดเพื่อจำลองพฤติกรรมของมัน
ก่อนอื่นเราต้องกำหนดโครงสร้างสำหรับโหนดใน Linked List:
01 NODE.
05 DATA PIC X(10).
05 NEXT POINTER.
ตัวอย่างการเพิ่มโหนดใหม่ (Insert):
PROCEDURE DIVISION.
// สมมติว่า HeadNode คือตัวชี้หัวของ Linked List
MOVE NEW-DATA TO DATA OF NEW-NODE
MOVE HeadNode TO NEXT OF NEW-NODE
SET HeadNode TO NEW-NODE
การค้นหา (Find):
PROCEDURE DIVISION.
SET CURRENT-NODE TO HeadNode
PERFORM UNTIL DATA OF CURRENT-NODE = DESIRED-DATA OR NEXT OF CURRENT-NODE = NULL
SET CURRENT-NODE TO NEXT OF CURRENT-NODE
END-PERFORM
การปรับปรุงข้อมูล (Update):
PROCEDURE DIVISION.
SET CURRENT-NODE TO HeadNode
PERFORM UNTIL DATA OF CURRENT-NODE = DESIRED-DATA OR NEXT OF CURRENT-NODE = NULL
IF DATA OF CURRENT-NODE = DESIRED-DATA THEN
MOVE NEW-DATA TO DATA OF CURRENT-NODE
END-IF
SET CURRENT-NODE TO NEXT OF CURRENT-NODE
END-PERFORM
การลบข้อมูล (Delete):
PROCEDURE DIVISION.
SET PREV-NODE TO NULL
SET CURRENT-NODE TO HeadNode
PERFORM UNTIL DATA OF CURRENT-NODE = DESIRED-DATA OR NEXT OF CURRENT-NODE = NULL
IF DATA OF CURRENT-NODE = DESIRED-DATA THEN
IF PREV-NODE = NULL THEN
SET HeadNode TO NEXT OF CURRENT-NODE
ELSE
SET NEXT OF PREV-NODE TO NEXT OF CURRENT-NODE
END-IF
EXIT PERFORM
END-IF
SET PREV-NODE TO CURRENT-NODE
SET CURRENT-NODE TO NEXT OF CURRENT-NODE
END-PERFORM
- การเพิ่มหรือลบโหนดไม่ต้องเปลี่ยนลำดับขององค์ประกอบอื่นๆ ในโครงสร้าง
- สามารถจัดสรรหน่วยความจำได้หยืดหยุ่นขณะรันไทม์
- ไม่มีการจำกัดขนาดของโครงสร้างข้อมูลล่วงหน้า
- การเข้าถึงข้อมูลใดๆ จะต้องเดินไปตามโหนดทีละโหนด ทำให้มีค่าใช้จ่ายของเวลา (Time complexity) สำหรับการค้นหาทีละตัว
- การค้นหาข้อมูลไม่เร็วเท่ากับโครงสร้างข้อมูลที่มีการจัดเตรียมการเข้าถึงด้วยอินเด็กซ์ เช่น Array
ในการเขียนโค้ด COBOL หรือภาษาอื่นๆ การเรียนรู้และทดลองใช้ Linked List เป็นการขยายขอบเขตความสามารถของโปรแกรมเมอร์ ที่ Expert-Programming-Tutor (EPT), เรามีหลักสูตรที่จะนำคุณไปสู่ความเชี่ยวชาญการเขียนโค้ดและการคิดเชิงอัลกอริทึม ไม่ว่าจะสำหรับความต้องการด้านธุรกิจหรือการวิจัย สนใจเรียนรู้การโปรแกรมมิ่ง? ติดต่อ EPT แล้วเริ่มต้นทางสู่ความเป็นมืออาชีพวันนี้!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: cobol linked_list การจัดการข้อมูล insert update find delete โครงสร้างข้อมูล โหนด โปรแกรม_cobol time_complexity อินเด็กซ์ array
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM