কম্পিউটার

জাভাস্ক্রিপ্ট ব্যবহার করে দ্বিগুণ লিঙ্কযুক্ত তালিকায় উপাদান সন্নিবেশ করা হচ্ছে


আমাদের একটি ফাংশন ইনসার্ট (ডেটা, পজিশন) তৈরি করতে হবে যা লিঙ্ক করা তালিকায় প্রদত্ত অবস্থানে ডেটা সন্নিবেশ করে। আমরা নিম্নলিখিত ধাপগুলি সম্পাদন করব -

  • একটি নতুন নোড তৈরি করুন
  • তালিকা খালি আছে কিনা তা পরীক্ষা করুন। যদি এটি মাথা এবং পুচ্ছের সাথে নোড যোগ করে এবং ফিরে আসে।
  • যদি না হয়, তাহলে আমরা currElem ব্যবহার করে যে অবস্থানে এটি সন্নিবেশ করতে চাই সেই অবস্থানে পুনরাবৃত্তি করব। আমরা currElem এর সমান currElem.next করে একটি লিঙ্কযুক্ত তালিকা পুনরাবৃত্তি করি।

এখন আমরা নিম্নলিখিত উপায়ে লিঙ্কগুলি পরিবর্তন করি -

  • একটি তালিকার পরবর্তী নোডে নতুন নোড পয়েন্ট করুন
  • নতুন নোডে পরবর্তী নোডের আগের পয়েন্ট করুন
  • আমাদের নোডকে পূর্ববর্তী নোডের দিকে বিন্দু করুন
  • নতুন নোডে আগের নোডের পরবর্তী পয়েন্ট করুন

অবশেষে, আমরা currElem থেকে বাকি তালিকার লিঙ্কটি ভেঙে ফেলি এবং এটিকে আমাদের তৈরি নোডে নির্দেশ করি। এখন নোডটি প্রদত্ত অবস্থানে তালিকায় রয়েছে।

এখানে একই -

এর একটি দৃষ্টান্ত রয়েছে

জাভাস্ক্রিপ্ট ব্যবহার করে দ্বিগুণ লিঙ্কযুক্ত তালিকায় উপাদান সন্নিবেশ করা হচ্ছে

এখন দেখা যাক কিভাবে আমরা এটি বাস্তবায়ন করব −

উদাহরণ

insert(data, position = this.length) {
   let node = new this.Node(data);
   this.length++;
   // List is currently empty
   if (this.head === null) {
      this.head = node;
      this.tail = node;
      return this.head;
   }
   // Insertion at head
   if (position == 0) {
      node.prev = null;
      node.next = this.head;
      this.head.prev = node;
      this.head = node;
      return this.head;
   }
   let iter = 1;
   let currNode = this.head;
   while (currNode.next != null && iter < position) {
      currNode = currNode.next;
      iter++;
   }
   // Make new node point to next node in list
   node.next = currNode.next;
   // Make next node's previous point to new node
   if (currNode.next != null) {
      currNode.next.prev = node;
   }
   // Make our node point to previous node
   node.prev = currNode;
   // Make previous node's next point to new node
   currNode.next = node;
   // check if inserted element was at the tail, if yes then make tail point to it
   if (this.tail.next != null) {
      this.tail = this.tail.next;
    }
    return node;
}

মনে রাখবেন যে আমরা শেষ উপাদান হিসাবে অবস্থান দিয়েছি। এটির কারণ যদি আপনি একটি অবস্থান প্রদান না করেন, এটি ডিফল্টরূপে শেষ পর্যন্ত ঢোকানো হবে৷

আপনি এটি ব্যবহার করে পরীক্ষা করতে পারেন:

উদাহরণ

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

আউটপুট

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

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

আমরা দেখতে পাচ্ছি যে সমস্ত উপাদান আমাদের উদ্দেশ্য অনুসারে রয়েছে। আমরা 2 এর পরে অবস্থানে 15 সন্নিবেশ করার চেষ্টা করেছি।


  1. জাভাস্ক্রিপ্টে সার্কুলার হিসাবে এককভাবে লিঙ্ক করা তালিকা

  2. জাভাস্ক্রিপ্ট ব্যবহার করে একটি ডাবল লিঙ্কযুক্ত তালিকা থেকে উপাদানগুলি সরানো হচ্ছে

  3. সি ভাষা ব্যবহার করে লিঙ্ক তালিকায় উপাদান সন্নিবেশ ব্যাখ্যা করুন

  4. C++ এ দ্বিগুণ লিঙ্কযুক্ত তালিকা ব্যবহার করে অগ্রাধিকার সারি