Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ลบองค์ประกอบออกจากรายการที่เชื่อมโยงโดยใช้ Javascript


การลบองค์ประกอบนั้นง่ายมากในรายการที่เชื่อมโยง เราแค่ต้องกำจัดโหนดที่เราต้องการลบ นั่นคือ สูญเสียข้อมูลอ้างอิง มี 3 กรณีที่เราต้องพิจารณา -

  • การลบองค์ประกอบออกจากส่วนหัว:ในกรณีนี้ เราสามารถกำหนด head =head.next ได้ง่ายๆ วิธีนี้จะทำให้สูญเสียการอ้างอิงขององค์ประกอบแรก และออกหัวจะเริ่มชี้ไปที่องค์ประกอบที่สอง
  • การลบองค์ประกอบออกจากส่วนท้าย:ในกรณีนี้ เราสามารถกำหนด node.next ของโหนดสุดท้ายที่สองให้เป็น null และเราจะกำจัดองค์ประกอบสุดท้ายออกจากรายการ
  • การลบองค์ประกอบออกจากระหว่าง:สิ่งนี้ยากกว่า ในกรณีนี้ เราจะต้องสร้างโหนดก่อนโหนดที่เราต้องการลบ เพื่อชี้ไปที่โหนดหลังโหนดที่เราต้องการลบโดยตรง ดังนั้น prevNode.next =node.next จะทำสิ่งนี้ให้เรา

ทีนี้มาดูภาพประกอบของสิ่งนี้กัน −

ลบองค์ประกอบออกจากรายการที่เชื่อมโยงโดยใช้ Javascript

ตอนนี้เรามาดูกันว่าเราจะใช้สิ่งนี้อย่างไร -

ตัวอย่าง

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

คุณสามารถทดสอบได้โดยใช้ −

ตัวอย่าง

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 ->