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

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


লিংকড লিস্ট থেকে একটি এলিমেন্ট সরানো খুব সহজ। আমাদের শুধু সেই নোডটি রিড করতে হবে যা আমরা সরাতে চাই, অর্থাৎ এর রেফারেন্স হারিয়ে ফেলতে হবে। ৩টি কেস বিবেচনা করতে হবে −

  • হেড থেকে এলিমেন্ট সরানো: এই কেসে, আমরা সহজেই head = head.next অ্যাসাইন করতে পারি এবং পরবর্তী এলিমেন্ট থেকে পূর্বের লিংক সরাতে পারি। এইভাবে আমরা প্রথম এলিমেন্টের রেফারেন্স হারিয়ে যাব। এবং আমাদের হেড দ্বিতীয় এলিমেন্টকে পয়েন্ট করবে।
  • টেইল থেকে এলিমেন্ট সরানো: এই কেসে, আমরা সহজেই সেকেন্ড লাস্ট নোডের node.next-কে null অ্যাসাইন করতে পারি এবং আমরা লিস্ট থেকে লাস্ট এলিমেন্টটি বাদ দিতে পারি। আমরা টেইলকেও কারেন্ট নোডকে পয়েন্ট করতে আপডেট করি।
  • মাঝপথ থেকে এলিমেন্ট সরানো: এটি বেশি ট্রিকি। এই কেসে, আমাদের নোডটি যা আমরা সরাতে চাই তার আগের নোডকে সরাসরি সেই নোডের পরে যেই নোডটি আছে সেটাকে পয়েন্ট করতে হবে। তাই, prevNode.next = node.next এবং node.next.prev = prevNode এটি আমাদের জন্য করবে।

এখন এর একটি ইলাস্ট্রেশন দেখি −

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

এখন আমরা কীভাবে এটি ইমপ্লিমেন্ট করব তা দেখি − 

উদাহরণ

remove(data, position = 0) {    if (this.length === 0) {       console.log("List is already empty");       return;    }    this.length--;    let currNode = this.head;    if (position <= 0) {       this.head = this.head.next;       this.head.prev = null;    }    else if (position >= this.length - 1) {       this.tail = this.tail.prev;       this.tail.next = null;    }    else {       let iter = 0;       while (iter < position) {          currNode = currNode.next;          iter++;       }       currNode.next = currNode.next.next;       currNode.next.prev = currNode;    }    return currNode; }

উদাহরণ

আপনি এটি টেস্ট করতে পারেন −

let list = new LinkedList(); list.insert(10); list.insert(20); list.insert(30); list.remove(1); list.display(); list.insert(15, 2); list.remove(); list.display();

আউটপুট

এটি আউটপুট দেবে −

20 <-> 30 <-> 30 <-> 15 <->

  1. জাভাস্ক্রিপ্টে লিংকড লিস্টে এলিমেন্ট যোগ করা (Insert)

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

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

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