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

জাভাস্ক্রিপ্টে DoublyLinkedList ক্লাস


এখানে DoublyLinkedList ক্লাসের সম্পূর্ণ ইমপ্লিমেন্টেশন দেওয়া হলো −

উদাহরণ

class DoublyLinkedList {    constructor() {       this.head = null;       this.tail = null;       this.length = 0;    }    insert(data, position = this.length) {       let node = new this.Node(data);       // লিস্ট বর্তমানে খালি       if (this.head === null) {          this.head = node;          this.tail = node;          this.length++;          return this.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++;       }       // নতুন নোড পরবর্তী নোডকে পয়েন্ট করাক       node.next = currNode.next;       // পরবর্তী নোডের previous নতুন নোডকে পয়েন্ট করাক       if (currNode.next != null) {          currNode.next.prev = node;       }       // আমাদের নোডটি পূর্বের নোডকে পয়েন্ট করাক       node.prev = currNode;       // পূর্বের নোডের next নতুন নোডকে পয়েন্ট করাক       currNode.next = node;       // চেক করুন ইনসার্ট করা এলিমেন্ট টেইলে ছিল কিনা, হলে টেইলকে সেটাকে পয়েন্ট করাক       if (this.tail.next != null) {          this.tail = this.tail.next;       }       this.length++;       return node;    }    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;    }    display() {       let currNode = this.head;       while (currNode != null) {          console.log(currNode.data + " <-> ");          currNode = currNode.next;       }    } } DoublyLinkedList.prototype.Node = class {    constructor(data) {       this.data = data;       this.next = null;       this.prev = null;    } };

  1. জাভাস্ক্রিপ্টে ডাবলি লিংকড লিস্ট: কনসেপ্ট ও রিপ্রেজেন্টেশন

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

  3. জাভাস্ক্রিপ্টে ডাবলি লিংকড লিস্টকে সার্কুলার (Circular) করা

  4. জাভাস্ক্রিপ্টে সিংলি লিংকড লিস্টকে সার্কুলার (Circular) করা