Linked List เป็นโครงสร้างข้อมูลพื้นฐานที่มีความสำคัญในการเขียนโปรแกรม โดยเฉพาะเมื่อต้องการจัดการข้อมูลแบบไดนามิค ใน Python, Linked List ไม่ได้ถูกรวมอยู่ในไลบรารีมาตรฐาน แต่สามารถสร้างได้โดยใช้คลาสและอ็อบเจ็คต์ ในบทความนี้ เราจะสำรวจวิธีการสร้างและจัดการ Linked List ใน Python ผ่านตัวอย่างโค้ดสำหรับการ insert, insertAtFront, find, และ delete
Linked List ประกอบด้วยโหนด ซึ่งแต่ละโหนดมีส่วนประกอบสองส่วนคือ ข้อมูล (data) และการอ้างอิง (reference) ไปยังโหนดถัดไป ใน Python, โหนดสามารถถูกสร้างได้โดยใช้คลาส
class Node:
def __init__(self, data):
self.data = data
self.next = None
และ Linked List สามารถถูกสร้างขึ้นด้วยการเชื่อมโหนดเหล่านี้เข้าด้วยกัน:
class LinkedList:
def __init__(self):
self.head = None
1. Insert
การเพิ่มข้อมูลใน Linked List:
def insert(self, data):
new_node = Node(data)
new_node.next = self.head
self.head = new_node
ขั้นตอนการทำงาน: สร้างโหนดใหม่และทำให้โหนดนี้ชี้ไปที่โหนดแรกของ Linked List จากนั้นอัปเดตให้โหนดใหม่นี้เป็นโหนดแรก
2. InsertAtFront
การเพิ่มข้อมูลที่หัวของ Linked List:
def insertAtFront(self, data):
self.insert(data)
ขั้นตอนการทำงาน: เรียกใช้ฟังก์ชัน insert ด้านบน
3. Find
การค้นหาข้อมูลใน Linked List:
def find(self, key):
current = self.head
while current:
if current.data == key:
return True
current = current.next
return False
ขั้นตอนการทำงาน: วนลูปผ่าน Linked List และตรวจสอบว่ามีข้อมูลที่ต้องการหรือไม่
4. Delete
การลบข้อมูลจาก Linked List:
def delete(self, key):
current = self.head
prev = None
while current:
if current.data == key:
if prev:
prev.next = current.next
else:
self.head = current.next
return
prev = current
current = current.next
ขั้นตอนการทำงาน: วนลูปผ่าน Linked List เพื่อหาข้อมูลที่ต้องการลบ และทำการลบโหนดนั้นออกจากลิสต์
Linked List เป็นโครงสร้างข้อมูลที่มีความสำคัญและเป็นพื้นฐานในการเรียนรู้การเขียนโปรแกรม โดยเฉพาะในการจัดการข้อมูลแบบไดนามิค การเรียนรู้และการปฏิบัติตามตัวอย่างโค้ดที่กล่าวมาข้างต้นจะช่วยให้คุณเข้าใจถึงการทำงานและการใช้งานของ Linked List ใน Python ซึ่งเป็นก้าวแรกสำคัญในการเป็นนักพัฒนาซอฟต์แวร์มืออาชีพค่ะ
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM