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

জাভাস্ক্রিপ্টে লিস্ট (List) ডেটা স্ট্রাকচার: বেসিক অপারেশনসমূহ


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 সাইজ, মেমরি ফ্র্যাগমেন্টেশন এক্সেপ্টেবল।
  1. জাভাস্ক্রিপ্টে ডাবলি লিংকড লিস্টকে সার্কুলার (Circular) করা

  2. জাভাস্ক্রিপ্ট বেসিক অ্যারে মেথড: push, pop, shift, unshift, splice

  3. জাভাস্ক্রিপ্ট দিয়ে পেরেন্ট এলিমেন্ট অ্যাক্সেস করা

  4. জাভাস্ক্রিপ্টে ID দিয়ে এলিমেন্ট রিমুভ করা