List Data Structure: মূল অপারেশনসমূহ
List (লিস্ট) হলো একটি অর্ডার্ড কালেকশন যেখানে এলিমেন্টগুলো একটি নির্দিষ্ট সিকোয়েন্সে থাকে। লিস্টের ওপর নিচের বেসিক অপারেশনগুলো সমর্থিত থাকে:
৫টি মূল অপারেশন
| অপারেশন | বর্ণনা | উদাহরণ (Array-based) |
|---|---|---|
| Insertion (ইনসারশন) | লিস্টের শুরুতে (বা যেকোনো পজিশনে) নতুন এলিমেন্ট যোগ করা। | list.unshift(val) / list.splice(0, 0, val) |
| Deletion (ডিলিশন - হেড থেকে) | লিস্টের শুরু থেকে এলিমেন্ট সরানো। | list.shift() |
| Display (ডিসপ্লে) | লিস্টের সব এলিমেন্ট প্রিন্ট/দেখানো। | console.log(list) / list.forEach(...) |
| Search (সার্চ) | দেওয়া Key/Value দিয়ে এলিমেন্ট খুঁজে বের করা। | list.indexOf(val) / list.find(...) |
| Delete by Key (কী দিয়ে ডিলিট) | নির্দিষ্ট Key/Value মিলে এলিমেন্ট রিমুভ করা। | list.splice(list.indexOf(val), 1) |
JavaScript Array as List
JavaScript-এ Array হলো বিল্ট-ইন লিস্ট ইমপ্লিমেন্টেশন যা উপরের সব অপারেশন নেটিভলি সাপোর্ট করে।
const list = [10, 20, 30, 40, 50];
// Insertion at Beginning
list.unshift(5); // [5, 10, 20, 30, 40, 50]
// Deletion from Beginning
list.shift(); // 5 removed -> [10, 20, 30, 40, 50]
// Display
console.log(list.join(" -> ")); // "10 -> 20 -> 30 -> 40 -> 50"
// Search
console.log(list.indexOf(30)); // 2 (Index)
console.log(list.includes(25)); // false
// Delete by Value
const idx = list.indexOf(30);
if (idx !== -1) list.splice(idx, 1); // [10, 20, 40, 50]
Linked List vs Array List
| Operation | Array List | Linked List |
|---|---|---|
| Insert at Head | O(n) — Shift all | O(1) — Head update |
| Delete from Head | O(n) — Shift all | O(1) — Head update |
| Insert at Tail | O(1) Amortized | O(n) without Tail / O(1) with Tail |
| Access by Index | O(1) | O(n) |
| Search | O(n) | O(n) |
| Memory | Compact | Extra Pointer Overhead |
কোনটি কখন ব্যবহার করবেন?
- Array/List: র্যান্ডম এক্সেস দরকার, ক্যাশ-ফ্রেন্ডলি, স্মল টু মিডিয়াম সাইজ।
- Linked List: ফ্রিকোয়েন্ট হেড ইনসারশন/ডিলিশন, আননOWN সাইজ, মেমরি ফ্র্যাগমেন্টেশন এক্সেপ্টেবল।