কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে লিংকড লিস্ট রিপ্রেজেন্টেশন (Visual)


Linked List Representation: ভিজ্যুয়াল ও কনসেপ্ট

লিংকড লিস্ট মেমরিতে কীভাবে সংগঠিত থাকে, তা বোঝার জন্য একটি ডায়াগ্রাম ও মূল পয়েন্টগুলো নিচে দেওয়া হলো।

ভিজ্যুয়াল রিপ্রেজেন্টেশন

HEAD (Reference)
  ↓
┌──────────────┐     ┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│  Data: 10    │────▶│  Data: 20    │────▶│  Data: 30    │────▶│  Data: 40    │
│  Next: ──────┼────▶│  Next: ──────┼────▶│  Next: ──────┼────▶│  Next: null  │
└──────────────┘     └──────────────┘     └──────────────┘     └──────────────┘
   Node 1               Node 2               Node 3               Node 4 (Tail)

গুরুত্বপূর্ণ পয়েন্টসমূহ

কনসেপ্ট বর্ণনা
Head Reference লিংকড লিস্টে একটি head রেফারেন্স থাকে যা প্রথম নোডকে পয়েন্ট করে। এটি লিস্টের এন্ট্রি পয়েন্ট।
Node Structure প্রতিটি লিংক/নোডে থাকে:
• Data Field(s): স্টোর করা মান
• Link Field (next): পরবর্তি নোডের রেফারেন্স
Chaining প্রতিটি নোড তার next লিংক দিয়ে পরের নোডের সাথে সংযুক্ত থাকে। এটি একটি চেইন তৈরি করে।
Termination শেষ নোড (Tail) এর next থাকে null। এটি লিস্টের শেষ বোঝায়।

মেমরি লেআউট (Conceptual)

Memory Addresses (Non-Contiguous):
┌─────────┐     ┌─────────┐     ┌─────────┐
│ 0x7F2A  │     │ 0x9B1C  │     │ 0x3E8F  │
│ Data: 1 │     │ Data: 2 │     │ Data: 3 │
│ Next: ──┼────▶│ Next: ──┼────▶│ Next: ∅ │
└─────────┘     └─────────┘     └─────────┘
  Node 1          Node 2          Node 3 (Tail)

HEAD = 0x7F2A

অ্যারের মতো সटा মেমরি নয় — নোডগুলো মেমরির যেকোনো জায়গায় থাকতে পারে, লিংক দিয়ে কানেক্টেড।

JavaScript-এ রিপ্রেজেন্টেশন

// Object-based Node (JavaScript Style)
const node1 = { data: 10, next: null };
const node2 = { data: 20, next: null };
const node3 = { data: 30, next: null };

// Linking
node1.next = node2;
node2.next = node3;

const head = node1;

// Traversal
let current = head;
while (current !== null) {
  console.log(current.data);
  current = current.next;
}
// Output: 10, 20, 30

ক্লাস-ভিত্তিক রিপ্রেজেন্টেশন (Recommended)

class Node {
  constructor(data) {
    this.data = data;
    this.next = null;
  }
}

class LinkedList {
  constructor() {
    this.head = null;
  }
  // methods: insert, remove, display, etc.
}
  1. জাভাস্ক্রিপ্টে লিংকড লিস্ট তৈরি করা (বেসিক)

  2. জাভাস্ক্রিপ্টে ডাবলি লিংকড লিস্টকে সার্কুলার (Circular) করা

  3. জাভাস্ক্রিপ্টে সিংলি লিংকড লিস্টকে সার্কুলার (Circular) করা

  4. জাভাস্ক্রিপ্ট ব্যবহার করে ডাবল লিংকড লিস্ট থেকে এলিমেন্ট সরানো