Linked List (লিংকড লিস্ট)

লেসন ২২ / ৫১

Linked List কী?

Linked List-এ ডেটা Node আকারে সাজানো থাকে। প্রতিটি Node-এ দুটি জিনিস থাকে — Data এবং পরবর্তী Node-এর Address (Pointer)।

Array vs Linked List

  • Array-তে ডেটা পরপর মেমরিতে থাকে, Linked List-এ যেকোনো জায়গায় থাকতে পারে
  • Array-র আকার fixed, Linked List dynamic — যতটুকু দরকার ততটুকু বাড়ে
  • Array-তে index দিয়ে সরাসরি access, Linked List-এ শুরু থেকে হাঁটতে হয়

ধরনসমূহ

  • Singly Linked List — প্রতি Node শুধু পরেরটির দিকে point করে
  • Doubly Linked List — প্রতি Node আগের ও পরের দুটোর দিকে point করে
  • Circular Linked List — শেষ Node আবার প্রথমটির দিকে point করে

Python-এ Singly Linked List

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = None

    def append(self, data):
        new_node = Node(data)
        if not self.head:
            self.head = new_node
            return
        current = self.head
        while current.next:
            current = current.next
        current.next = new_node

    def display(self):
        current = self.head
        while current:
            print(current.data, end=" -> ")
            current = current.next
        print("None")