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.
}