DEV Community

Cover image for LinkedList in JavaScript
bappasaha
bappasaha

Posted on

LinkedList in JavaScript

đŸ”Ĩ00- Linked List in JavaScript

  • How to Create Node
  • Create Linked List
  • Performed Push( ), | O(1) | add node at the end
  • Performed Pop( ), | O(n) | remove Node at the end
  • Performed Unshift( ), | O(1) | add Node at the start
  • Performed shift( ), | O(1) | remove Node at the start
  • Performed get| set
  • Performed Insert **| **Remove at any Node and Reverse Linked List
đŸ”Ĩ01- Linked List āĻāĻŦāĻ‚ Array <br> 
Enter fullscreen mode Exit fullscreen mode

đŸ”Ĩ01- Linked List āĻāĻŦāĻ‚ Array

āĻāϟāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰāĻĨāĻŽ āĻĄā§‡āϟāĻž āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ āϝāĻž āφāĻŽāϰāĻž āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āϝāĻžāĻšā§āĻ›āĻŋ, āϝāĻž āĻ•āĻŋāϛ⧁āϟāĻž important. āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āϟāϗ⧁āϞāĻŋ āĻĒāϰāĻŋāϚāϝāĻŧ āĻ•āϰāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ, āφāĻŽāĻŋ āĻāϟāĻŋ āϏ⧇āχ āĻĄā§‡āϟāĻž āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϤ⧁āϞāύāĻž āĻ•āϰāĻŦ āϝāĻž āĻāϟāĻŋ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āĻŦ⧇āĻļāĻŋ āϤ⧁āϞāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ, āĻāĻŦāĻ‚ āϤāĻž āĻšāϞ āĻ…ā§āϝāĻžāϰ⧇āĨ¤

āĻ…ā§āϝāĻžāϰ⧇āϰ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ

  • index: āĻ…ā§āϝāĻžāϰ⧇āϗ⧁āϞāĻŋāϰ āĻāĻ•āϟāĻŋ index āĻĨāĻžāϕ⧇, āϝāĻž āĻĒā§āϰāϤāĻŋāϟāĻŋ āωāĻĒāĻžāĻĻāĻžāύāϕ⧇ āϚāĻŋāĻšā§āύāĻŋāϤ āĻ•āϰ⧇āĨ¤
  • āĻŽā§‡āĻŽāϰāĻŋāϤ⧇ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ: āĻ…ā§āϝāĻžāϰ⧇ āωāĻĒāĻžāĻĻāĻžāύāϗ⧁āϞāĻŋ āϧāĻžāϰāĻžāĻŦāĻžāĻšāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻŽā§‡āĻŽāϰāĻŋāϤ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŋāϤ āĻšāϝāĻŧāĨ¤

āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ

  • index: āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āϟāϗ⧁āϞāĻŋāϰ āϕ⧋āύāĻ“ āϏ⧂āϚāĻ• āύ⧇āχāĨ¤
  • āĻŽā§‡āĻŽāϰāĻŋāϤ⧇ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ: āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āωāĻĒāĻžāĻĻāĻžāύāϗ⧁āϞāĻŋ āĻŽā§‡āĻŽāϰāĻŋāϤ⧇ āϝ⧇āϕ⧋āύ⧋ āϜāĻžāϝāĻŧāĻ—āĻžāϝāĻŧ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŦāĻ‚ āĻāϟāĻŋ āϧāĻžāϰāĻžāĻŦāĻžāĻšāĻŋāĻ• āύāϝāĻŧāĨ¤

āĻ—ā§āϰāĻžāĻĢāĻŋāĻ•āĻžāϞ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ

āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āωāĻĒāĻžāĻĻāĻžāύāϗ⧁āϞāĻŋāϕ⧇ āĻ—ā§āϰāĻžāĻĢāĻŋāĻ•ā§āϝāĻžāϞāĻ­āĻžāĻŦ⧇ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āφāĻŽāϰāĻž āϏāĻŦ⧁āϜ āĻŦāĻ°ā§āĻ—āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻŦ⧇āϗ⧁āύāĻŋ āĻŦ⧃āĻ¤ā§āϤ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦāĨ¤
🔂 🔂 🔂

  • Head and Tail: āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡ āĻāĻ•āϟāĻŋ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ āĻĨāĻžāϕ⧇ āϝāĻžāϕ⧇ "āĻšā§‡āĻĄ" āĻŦāϞāĻž āĻšāϝāĻŧ, āϝāĻž āĻĒā§āϰāĻĨāĻŽ āφāχāĻŸā§‡āĻŽāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇, āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ "āĻŸā§‡āχāϞ" āĻĨāĻžāϕ⧇, āϝāĻž āĻļ⧇āώ āφāχāĻŸā§‡āĻŽāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇āĨ¤
  • āϞāĻŋāĻ™ā§āĻ•: āĻĒā§āϰāϤāĻŋāϟāĻŋ āφāχāĻŸā§‡āĻŽ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āφāχāĻŸā§‡āĻŽā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇, āĻāĻŦāĻ‚ āĻļ⧇āώ āφāχāĻŸā§‡āĻŽāϟāĻŋ null āĻāϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇āĨ¤ āϤāĻžāχ āφāĻĒāύāĻŋ "null terminated list" āĻļāĻŦā§āĻĻāϟāĻŋ āĻļ⧁āύāϤ⧇ āĻĒāĻžāĻŦ⧇āύāĨ¤

āϏāĻžāϰāϏāĻ‚āĻ•ā§āώ⧇āĻĒ

āĻ…ā§āϝāĻžāϰ⧇āϗ⧁āϞāĻŋ āϧāĻžāϰāĻžāĻŦāĻžāĻšāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻŽā§‡āĻŽāϰāĻŋāϤ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŋāϤ āĻšāϝāĻŧ, āϝ⧇āĻ–āĻžāύ⧇ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āϟāϗ⧁āϞāĻŋ āϝ⧇āϕ⧋āύ⧋ āĻ¸ā§āĻĨāĻžāύ⧇ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāχ āϤ⧁āϞāύāĻžāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āφāĻŽāϰāĻž āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āϟ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāϰ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻŽā§ŒāϞāĻŋāĻ• āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝāϗ⧁āϞāĻŋ āĻŦ⧁āĻāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤

đŸ”Ĩ02- āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āϟ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ— āĻ“ (Big O) <br> 
Enter fullscreen mode Exit fullscreen mode

đŸ”Ĩ02- āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āϟ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ— āĻ“ (Big O)

āĻāϟāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰāĻĨāĻŽ āĻĄā§‡āϟāĻž āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ āϝāĻž āφāĻŽāϰāĻž āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āϝāĻžāĻšā§āĻ›āĻŋ, āĻāχ āϏ⧇āĻ•āĻļāύ⧇, āφāĻŽāϰāĻž āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻ…āĻĒāĻžāϰ⧇āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻŦāĻŋāĻ— āĻ“ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āĻ•āϰāĻŦāĨ¤

✅ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡ āύ⧋āĻĄ āϝ⧋āĻ— āĻ•āϰāĻž

āϧāϰāĻŋ, āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻ•āϟāĻŋ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āϟ āφāϛ⧇ āĻāĻŦāĻ‚ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āύ⧋āĻĄ (ā§Ē) āϝ⧋āĻ— āĻ•āϰāϤ⧇ āϝāĻžāĻšā§āĻ›āĻŋāĨ¤

  • āύāϤ⧁āύ āύ⧋āĻĄ āϝ⧋āĻ— āĻ•āϰāĻž:
    • āύāϤ⧁āύ āύ⧋āĻĄāϟāĻŋ āĻļ⧇āώ⧇āϰ āĻĻāĻŋāϕ⧇ āϝ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇ āĻšāϞ⧇, āφāĻŽāĻžāĻĻ⧇āϰ āĻļ⧇āώ āύ⧋āĻĄāϟāĻŋ (tail) āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤
    • āĻāϟāĻŋ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āφāĻŽāϰāĻž tail āϕ⧇ āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāϤ āĻ•āϰāĻŋāĨ¤
    • āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ§ā§āϰ⧁āĻŦāĻ• āϏāĻŽāϝāĻŧ (O(1))āĨ¤

✅ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āϟ āĻĨ⧇āϕ⧇ āύ⧋āĻĄ āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻž

  • āĻļ⧇āώ āĻĨ⧇āϕ⧇ āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻž:
    • āĻļ⧇āώ āύ⧋āĻĄāϟāĻŋ āĻŽā§āϛ⧇ āĻĢ⧇āϞāϤ⧇ āĻšāϞ⧇, āφāĻŽāĻžāĻĻ⧇āϰ āĻļ⧇āώ⧇āϰ āĻĻāĻŋāϕ⧇ (tail) āϝāĻžāĻ“āϝāĻŧāĻžāϰ āϜāĻ¨ā§āϝ āĻĒ⧁āϰ⧋ āϞāĻŋāĻ¸ā§āϟāϟāĻŋ āĻĒāĻžāϰ āĻšāϤ⧇ āĻšāĻŦ⧇āĨ¤
    • āϤāĻžāχ, āĻāϟāĻŋ O(n)āĨ¤

āĻļ⧁āϰ⧁ āĻĨ⧇āϕ⧇ āύ⧋āĻĄ āϝ⧋āĻ— āĻ•āϰāĻž

  • āĻļ⧁āϰ⧁āϰ āĻĻāĻŋāϕ⧇ āϝ⧋āĻ— āĻ•āϰāĻž:
    • āύāϤ⧁āύ āύ⧋āĻĄāϟāĻŋ āϝ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇ āĻšāϞ⧇, āĻšā§‡āĻĄāϕ⧇ āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤
    • āĻāϟāĻŋ O(1)āĨ¤

āĻļ⧁āϰ⧁ āĻĨ⧇āϕ⧇ āύ⧋āĻĄ āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻž

  • āĻļ⧁āϰ⧁ āĻĨ⧇āϕ⧇ āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻž:
    • āĻšā§‡āĻĄāϕ⧇ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤
    • āĻāϟāĻŋ O(1)āĨ¤

āĻŽāĻ§ā§āϝāĻŦāĻ°ā§āϤ⧀ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ⧇ āχāύāϏāĻžāĻ°ā§āϟ āĻ•āϰāĻž

  • āĻŽāĻ§ā§āϝāĻŦāĻ°ā§āϤ⧀ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ⧇ āχāύāϏāĻžāĻ°ā§āϟ āĻ•āϰāĻž:
    • āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āχāύāĻĄā§‡āĻ•ā§āϏ⧇ āχāύāϏāĻžāĻ°ā§āϟ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āφāĻŽāĻžāĻĻ⧇āϰ āĻšā§‡āĻĄ āĻĨ⧇āϕ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧇ āĻĒ⧁āϰ⧋ āϞāĻŋāĻ¸ā§āϟāϟāĻŋ āĻĒāĻžāϰ āĻšāϤ⧇ āĻšāĻŦ⧇āĨ¤
    • āϤāĻžāχ, āĻāϟāĻŋ O(n)āĨ¤

āĻŽāĻ§ā§āϝāĻŦāĻ°ā§āϤ⧀ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ⧇ āφāχāĻŸā§‡āĻŽ āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻž

  • āĻŽāĻ§ā§āϝāĻŦāĻ°ā§āϤ⧀ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ⧇ āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻž:
    • āĻāĻ•āχāĻ­āĻžāĻŦ⧇, āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āχāύāĻĄā§‡āĻ•ā§āϏ⧇ āφāχāĻŸā§‡āĻŽ āĻŽā§āϛ⧇ āĻĢ⧇āϞāϤ⧇ āĻšāϞ⧇, āĻĒ⧁āϰ⧋ āϞāĻŋāĻ¸ā§āϟāϟāĻŋ āĻĒāĻžāϰ āĻšāϤ⧇ āĻšāĻŦ⧇āĨ¤
    • āϤāĻžāχ, āĻāϟāĻŋ O(n)āĨ¤

āφāχāĻŸā§‡āĻŽ āĻ–ā§‹āρāϜāĻž

  • āĻŽāĻžāύ āĻĻā§āĻŦāĻžāϰāĻž āĻ–ā§‹āρāϜāĻž:

    • āϝāĻĻāĻŋ āφāĻŽāϰāĻž āĻŽāĻžāύ āĻĻā§āĻŦāĻžāϰāĻž āϖ⧁āρāϜāϤ⧇ āϚāĻžāχ, āϤāĻžāĻšāϞ⧇ āĻšā§‡āĻĄ āĻĨ⧇āϕ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧇ āĻĒ⧁āϰ⧋ āϞāĻŋāĻ¸ā§āϟāϟāĻŋ āĻĒāĻžāϰ āĻšāϤ⧇ āĻšāĻŦ⧇āĨ¤
    • āĻāϟāĻŋ O(n)āĨ¤
  • āχāύāĻĄā§‡āĻ•ā§āϏ āĻĻā§āĻŦāĻžāϰāĻž āĻ–ā§‹āρāϜāĻž:

    • āχāύāĻĄā§‡āĻ•ā§āϏ āĻĻā§āĻŦāĻžāϰāĻž āϖ⧁āρāϜāϤ⧇ āĻšāϞ⧇, āφāĻŦāĻžāϰāĻ“ āĻšā§‡āĻĄ āĻĨ⧇āϕ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧇ āĻĒ⧁āϰ⧋ āϞāĻŋāĻ¸ā§āϟāϟāĻŋ āĻĒāĻžāϰ āĻšāϤ⧇ āĻšāĻŦ⧇āĨ¤
    • āϤāĻžāχ, āĻāϟāĻŋ O(n)āĨ¤
  • Push Pop works in Tail part add or remove

  • unshift works in the Head part add or remove

āĻ…ā§āϝāĻžāϰ⧇ āĻāĻŦāĻ‚ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āϤ⧁āϞāύāĻž

āĻ…āĻĒāĻžāϰ⧇āĻļāύ āĻ…ā§āϝāĻžāϰ⧇ (Array) āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āϟ (Linked List)
āĻļ⧇āώ āĻĨ⧇āϕ⧇ POP āĻ•āϰāĻž O(1) O(n)
āχāύāĻĄā§‡āĻ•ā§āϏ āĻĻā§āĻŦāĻžāϰāĻž āĻ–ā§‹āρāϜāĻž O(1) O(n)
āĻļ⧁āϰ⧁āϤ⧇ āϝ⧋āĻ— āĻ•āϰāĻž O(n) O(1)
āĻļ⧁āϰ⧁āϤ⧇ āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻž O(n) O(1)
āĻŽāĻ§ā§āϝāĻŦāĻ°ā§āϤ⧀ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ⧇ āϝ⧋āĻ— āĻ•āϰāĻž O(n) O(n)
āĻŽāĻ§ā§āϝāĻŦāĻ°ā§āϤ⧀ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ⧇ āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻž O(n) O(n)

āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻĻā§āϰ⧁āϤ āĻĒāĻ°ā§āϝāĻžāϞ⧋āϚāύāĻž āĻ›āĻŋāϞ āϝ⧇ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āϟ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāϰ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻ…āĻĒāĻžāϰ⧇āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻŦāĻŋāĻ— āĻ“ āĻŦāĻŋāĻļā§āϞ⧇āώāϪ⧇ āĻ­āĻŋāĻ¨ā§āύāĨ¤

let myLinkedList = new LinkedList(23); // āĻĒā§āϰāĻĨāĻŽ āύ⧋āĻĄā§‡āϰ āĻŽāĻžāύ 23 āĻĻāĻŋāϝāĻŧ⧇ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ myLinkedList.push(7); // āĻļ⧇āώ⧇ 7 āϝ⧋āĻ— āĻ•āϰ⧇ | O(1) myLinkedList.unshift(3); // āĻļ⧁āϰ⧁āϤ⧇ 3 āϝ⧋āĻ— āĻ•āϰ⧇ myLinkedList.insertAt(1, 11); // āϏ⧂āϚāĻ• 1 āĻ 11 āϏāĻ¨ā§āύāĻŋāĻŦ⧇āĻļ āĻ•āϰ⧇ myLinkedList.remove(1); // āϏ⧂āϚāĻ• 1 āĻĨ⧇āϕ⧇ āφāχāĻŸā§‡āĻŽ āĻ…āĻĒāϏāĻžāϰāĻŖ āĻ•āϰ⧇ (11) 
Enter fullscreen mode Exit fullscreen mode
class LinkedList { constructor(value) { this.head = { value: value, next: null }; // āĻšā§‡āĻĄ āύ⧋āĻĄ āĻļ⧁āϰ⧁ āĻ•āϰāĻž this.length = 1; // āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻŸā§āĻ°ā§āϝāĻžāĻ• āĻ•āϰāĻž } push(value) { // āĻļ⧇āώ⧇āϰ āĻĻāĻŋāϕ⧇ āύāϤ⧁āύ āύ⧋āĻĄ āϝ⧋āĻ— āĻ•āϰāĻžāϰ āĻŽā§‡āĻĨāĻĄ } unshift(value) { // āĻļ⧁āϰ⧁āϤ⧇ āύāϤ⧁āύ āύ⧋āĻĄ āϝ⧋āĻ— āĻ•āϰāĻžāϰ āĻŽā§‡āĻĨāĻĄ } insertAt(index, value) { // āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϏ⧂āϚāϕ⧇ āĻāĻ•āϟāĻŋ āύ⧋āĻĄ āϏāĻ¨ā§āύāĻŋāĻŦ⧇āĻļ āĻ•āϰāĻžāϰ āĻŽā§‡āĻĨāĻĄ } remove(index) { // āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϏ⧂āϚāĻ• āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āύ⧋āĻĄ āĻ…āĻĒāϏāĻžāϰāĻŖ āĻ•āϰāĻžāϰ āĻŽā§‡āĻĨāĻĄ } pop() { // āĻļ⧇āώ āύ⧋āĻĄ āĻ…āĻĒāϏāĻžāϰāĻŖ āĻ•āϰāĻžāϰ āĻŽā§‡āĻĨāĻĄ } shift() { // āĻĒā§āϰāĻĨāĻŽ āύ⧋āĻĄ āĻ…āĻĒāϏāĻžāϰāĻŖ āĻ•āϰāĻžāϰ āĻŽā§‡āĻĨāĻĄ } } 
Enter fullscreen mode Exit fullscreen mode
đŸ”Ĩ03- āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āĻ…āĻ¨ā§āϤāĻ°ā§āύāĻŋāĻšāĻŋāϤ āĻ—āĻ āύ <br> 
Enter fullscreen mode Exit fullscreen mode

đŸ”Ĩ03- āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ Internal Structure

āĻāĻ–āύ āφāĻŽāϰāĻž āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āĻ…āĻ¨ā§āϤāĻ°ā§āύāĻŋāĻšāĻŋāϤ āĻ—āĻ āύ āύāĻŋāϝāĻŧ⧇ āφāϞ⧋āϚāύāĻž āĻ•āϰāĻŦāĨ¤ āφāϏ⧁āύ āĻĻ⧇āĻ–āĻŋ āĻāϟāĻŋ āφāϏāϞ⧇ āϕ⧀āĻ­āĻžāĻŦ⧇ āϤ⧈āϰāĻŋ āĻšāϝāĻŧāĨ¤

āύ⧋āĻĄā§‡āϰ āĻ—āĻ āύ

āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āĻĒā§āϰāϤāĻŋāϟāĻŋ āωāĻĒāĻžāĻĻāĻžāύāϕ⧇ āύ⧋āĻĄ āĻŦāϞāĻž āĻšāϝāĻŧāĨ¤ āĻāĻ•āϟāĻŋ āύ⧋āĻĄā§‡ āĻĻ⧁āϟāĻŋ āĻĒā§āϰāϧāĻžāύ āωāĻĒāĻžāĻĻāĻžāύ āĻĨāĻžāϕ⧇:

  1. āĻŽāĻžāύ (Value): āĻāϟāĻŋ āύ⧋āĻĄā§‡āϰ āĻŽā§‚āϞ āϤāĻĨā§āϝāĨ¤
  2. āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰ (Pointer): āĻāϟāĻŋ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡āϰ āĻ āĻŋāĻ•āĻžāύāĻžāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇āĨ¤

āĻāĻ•āϟāĻŋ āύ⧋āĻĄā§‡āϰ āĻ—āĻ āύ āύāĻŋāĻšā§‡āϰ āĻŽāϤ⧋ āĻšāϤ⧇ āĻĒāĻžāϰ⧇:

{ value: 7, next: } 
Enter fullscreen mode Exit fullscreen mode

āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡ āύ⧋āĻĄ āϝ⧋āĻ— āĻ•āϰāĻž

āϝāĻ–āύ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āύ⧋āĻĄ (āϝ⧇āĻŽāύ ā§Ē) āϝ⧋āĻ— āĻ•āϰāĻŋ, āϤāĻ–āύ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰāĻĨāĻŽā§‡ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝ⧇ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄ (āϝ⧇āĻŽāύ ā§­) āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āφāĻŽāϰāĻž ā§­ āĻāϰ next āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰāϕ⧇ āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻ āĻŋāĻ•āĻžāύāĻžāϝāĻŧ āϏ⧇āϟ āĻ•āϰāĻŋāĨ¤

node7.next = node4; // ā§­ āύ⧋āĻĄāϟāĻŋ ā§Ē āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ 
Enter fullscreen mode Exit fullscreen mode

āĻāĻ–āύ, tail āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰāϟāĻŋāĻ“ āύāϤ⧁āύ āύ⧋āĻĄ (ā§Ē) āĻāϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŦ⧇āĨ¤

āĻšā§‡āĻĄ āĻāĻŦāĻ‚ āĻŸā§‡āχāϞ

  • āĻšā§‡āĻĄ (Head): āĻāϟāĻŋ āĻĒā§āϰāĻĨāĻŽ āύ⧋āĻĄāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇āĨ¤
  • āĻŸā§‡āχāϞ (Tail): āĻāϟāĻŋ āĻļ⧇āώ āύ⧋āĻĄāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻāϟāĻŋ āϏāĻ°ā§āĻŦāĻĻāĻž āĻļ⧇āώ⧇āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāϤ āĻĨāĻžāϕ⧇āĨ¤

āĻ—ā§āϰāĻžāĻĢāĻŋāĻ•ā§āϝāĻžāϞ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ

āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āϟāϕ⧇ āĻ—ā§āϰāĻžāĻĢāĻŋāĻ•ā§āϝāĻžāϞāĻ­āĻžāĻŦ⧇ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāϤ⧇, āφāĻŽāϰāĻž āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻ•āϟāĻŋ āĻĄāĻžāϝāĻŧāĻžāĻ—ā§āϰāĻžāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋ āϝ⧇āĻ–āĻžāύ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āύ⧋āĻĄ āĻāĻ•āϟāĻŋ āĻŦ⧃āĻ¤ā§āϤ⧇ āϚāĻŋāĻ¤ā§āϰāĻŋāϤ āĻšāϝāĻŧ āĻāĻŦāĻ‚ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰāϗ⧁āϞāĻŋ āϤ⧀āϰ āĻĻā§āĻŦāĻžāϰāĻž āϚāĻŋāĻšā§āύāĻŋāϤ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤

āωāĻĻāĻžāĻšāϰāĻŖ

āύāĻŋāĻšā§‡ āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϞ āϝ⧇āĻ–āĻžāύ⧇ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻ›āĻŋ:

class Node { constructor(value) { this.value = value; this.next = null; // āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡āϰ āϜāĻ¨ā§āϝ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰ } } class LinkedList { constructor() { this.head = null; // āĻĒā§āϰāĻĨāĻŽ āύ⧋āĻĄ this.tail = null; // āĻļ⧇āώ āύ⧋āĻĄ } add(value) { const newNode = new Node(value); if (!this.head) { this.head = newNode; this.tail = newNode; } else { this.tail.next = newNode; // āĻļ⧇āώ āύ⧋āĻĄā§‡āϰ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰ āϏ⧇āϟ āĻ•āϰāĻž this.tail = newNode; // āĻŸā§‡āχāϞ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž } } } 
Enter fullscreen mode Exit fullscreen mode

āωāĻĒāϏāĻ‚āĻšāĻžāϰ

āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āϟ āĻšāϞ āĻāĻ•āϟāĻŋ āĻĄāĻžāχāύāĻžāĻŽāĻŋāĻ• āĻĄā§‡āϟāĻž āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ āϝāĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϧāϰāύ⧇āϰ āĻ…āĻĒāĻžāϰ⧇āĻļāύ āϏāĻŽā§āĻĒāĻžāĻĻāύ⧇āϰ āϜāĻ¨ā§āϝ āϖ⧁āĻŦāχ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āύ⧋āĻĄā§‡ āϤāĻĨā§āϝ āĻāĻŦāĻ‚ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡āϰ āĻ āĻŋāĻ•āĻžāύāĻž āĻĨāĻžāϕ⧇, āϝāĻž āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āϏāĻšāĻœā§‡āχ āύāϤ⧁āύ āωāĻĒāĻžāĻĻāĻžāύ āϝ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇ āĻāĻŦāĻ‚ āĻŽā§āϛ⧇ āĻĢ⧇āϞāϤ⧇ āĻĻ⧇āϝāĻŧāĨ¤ āĻāχ āĻ—āĻ āύāϟāĻŋ āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āĻŽā§‡āĻŽāϰāĻŋ āĻŦā§āϝāĻŦāĻ¸ā§āĻĨāĻžāĻĒāύāĻžāϝāĻŧ āύāĻŽāύ⧀āϝāĻŧāϤāĻž āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤

āĻāĻŦāĻ‚ āĻāϟāĻŋāχ āĻ›āĻŋāϞ āφāĻŽāĻžāĻĻ⧇āϰ āϞāĻŋāĻ™ā§āϕ⧇āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āĻ…āĻ¨ā§āϤāĻ°ā§āύāĻŋāĻšāĻŋāϤ āĻ—āĻ āύ āύāĻŋāϝāĻŧ⧇ āφāϞ⧋āϚāύāĻžāĨ¤

đŸ”Ĩ04- āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ Constructor <br> 
Enter fullscreen mode Exit fullscreen mode

đŸ”Ĩ04- āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ Constructor

āĻāĻ–āύ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āϝāĻžāĻšā§āĻ›āĻŋāĨ¤ āφāϏ⧁āύ āĻļ⧁āϰ⧁ āĻ•āϰāĻŋāĨ¤

āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āϟ āĻ•ā§āϞāĻžāϏ āϤ⧈āϰāĻŋ āĻ•āϰāĻž

āĻĒā§āϰāĻĨāĻŽā§‡, āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āϟ āĻ•ā§āϞāĻžāϏāϟāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦāĨ¤ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ⧇āϰ āϕ⧋āĻĄ āϞ⧇āĻ–āĻžāϰ āφāϗ⧇, āφāĻŽāĻŋ āĻ•āĻŋāϛ⧁ āĻŦāĻŋāώāϝāĻŧ āωāĻ˛ā§āϞ⧇āĻ– āĻ•āϰāϤ⧇ āϚāĻžāχāĨ¤

āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ⧇āϰ āϏāĻžāϧāĻžāϰāĻŖ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ

āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ⧇āϰ āĻ•āĻŋāϛ⧁ āϏāĻžāϧāĻžāϰāĻŖ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āϰāϝāĻŧ⧇āϛ⧇ āϝāĻž āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻĒāĻĻā§āϧāϤāĻŋāϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇ āĻŽāĻŋāϞ āϰāϝāĻŧ⧇āϛ⧇, āϝ⧇āĻŽāύ:

  • Push: āύāϤ⧁āύ āύ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϏ⧇āϟāĻŋāϕ⧇ āĻļ⧇āώ⧇āϰ āĻĻāĻŋāϕ⧇ āϝ⧁āĻ•ā§āϤ āĻ•āϰ⧇āĨ¤
  • Unshift: āύāϤ⧁āύ āύ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϏ⧇āϟāĻŋāϕ⧇ āĻļ⧁āϰ⧁āϤ⧇ āϝ⧁āĻ•ā§āϤ āĻ•āϰ⧇āĨ¤
  • Insert: āύāϤ⧁āύ āύ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϏ⧇āϟāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ¸ā§āĻĨāĻžāύ⧇ āϏāĻ¨ā§āύāĻŋāĻŦ⧇āĻļ āĻ•āϰ⧇āĨ¤
class LinkdList { constructor(value){ // create new Node; } push(value){ // create new Node add Node to end } unshift(value){ // create new Node add Node to begining } insert (index, value){ // create new Node add Node to begining } 
Enter fullscreen mode Exit fullscreen mode

āϏāĻŦāϗ⧁āϞ⧋ āĻĒāĻĻā§āϧāϤāĻŋ āύāϤ⧁āύ āύ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰ⧇, āϤāĻžāχ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āφāϞāĻžāĻĻāĻž āĻ•ā§āϞāĻžāϏ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦ āϝāĻžāϕ⧇ āφāĻŽāϰāĻž Node āĻŦāϞāĻŦāĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĒāĻĻā§āϧāϤāĻŋ āϝāĻ–āύ āĻāĻ•āϟāĻŋ āύ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇, āϤāĻ–āύ āĻāϟāĻŋ āĻāχ āĻ•ā§āϞāĻžāϏāϟāĻŋ āĻ•āϞ āĻ•āϰāĻŦ⧇āĨ¤

✅āύ⧋āĻĄ āĻ•ā§āϞāĻžāϏ Constructor

āύ⧋āĻĄ āĻ•ā§āϞāĻžāϏ⧇āϰ āĻ—āĻ āύ āύāĻŋāĻšā§‡āϰ āĻŽāϤ⧋ āĻšāĻŦ⧇:

class Node { constructor(value) { this.value = value; // āύ⧋āĻĄā§‡āϰ āĻŽāĻžāύ this.next = null; // āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡āϰ āϜāĻ¨ā§āϝ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰ } } 
Enter fullscreen mode Exit fullscreen mode
// node class class MyNode { constructor(value) { this.value = value; this.next = null; } } const newNode_4 = new MyNode(4); //{value:4, next:null} 
Enter fullscreen mode Exit fullscreen mode

✅ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āϟ Constructor

āĻāĻ–āύ āφāϏ⧁āύ āφāĻŽāĻžāĻĻ⧇āϰ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ āϤ⧈āϰāĻŋ āĻ•āϰāĻŋ:

class LinkedList { constructor(value) { const newNode = new Node(value); // āύāϤ⧁āύ āύ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāĻž this.head = newNode; // āĻšā§‡āĻĄāϕ⧇ āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻž this.tail = newNode; // āĻŸā§‡āχāϞāϕ⧇ āĻāĻ•āχ āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻž this.length = 1; // āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ ā§§ āϏ⧇āϟ āĻ•āϰāĻž } } 
Enter fullscreen mode Exit fullscreen mode

āύāϤ⧁āύ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻž

āύāϤ⧁āύ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇, āφāĻĒāύāĻŋ āύāĻŋāĻšā§‡āϰ āϕ⧋āĻĄāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ:

const myLinkedList = new LinkedList(4); // ā§Ē āĻŽāĻžāύ āϏāĻš āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻž 
Enter fullscreen mode Exit fullscreen mode

āĻĄā§‡āĻ­āϟ⧁āϞāϏ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž

āĻāĻ–āύ āφāϏ⧁āύ āĻĄā§‡āĻ­āϟ⧁āϞāϏ⧇ āϕ⧋āĻĄāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻŋāĨ¤

  1. āĻĒā§āϰāĻĨāĻŽā§‡, āφāĻŽāϰāĻž new LinkedList(4) āĻ•āϞ āĻ•āϰāĻŋāĨ¤
  2. āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āύ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦ⧇ āϝāĻžāϰ āĻŽāĻžāύ ā§Ē āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻšā§‡āĻĄ āĻ“ āĻŸā§‡āχāϞ āωāĻ­āϝāĻŧāϕ⧇āχ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŦ⧇āĨ¤
  3. āϝāĻĻāĻŋ āφāĻŽāϰāĻž myLinkedList āϞāĻŋāĻ–āĻŋ āĻāĻŦāĻ‚ āĻāĻ¨ā§āϟāĻžāϰ āϚāĻžāĻĒāĻŋ, āϤāĻžāĻšāϞ⧇ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻŦ āϝ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻ•āϟāĻŋ āĻ•āĻžāϜ āĻ•āϰāϛ⧇ āĻāĻŽāύ āϞāĻŋāĻ™ā§āϕ⧇āĻĄ āϞāĻŋāĻ¸ā§āϟ āφāϛ⧇āĨ¤

āĻĢāϞāĻžāĻĢāϞ

LinkedList { head: Node { value: 4, next: null }, tail: Node { value: 4, next: null }, length: 1 } 
Enter fullscreen mode Exit fullscreen mode

āĻāϟāĻŋ āĻĻ⧇āĻ–āĻžāϝāĻŧ āϝ⧇ āĻšā§‡āĻĄ āĻāĻŦāĻ‚ āĻŸā§‡āχāϞ āωāĻ­āϝāĻŧāχ āĻāĻ•āχ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāϛ⧇ āĻāĻŦāĻ‚ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ ā§§āĨ¤

āĻāĻŦāĻ‚ āĻāχāĻ­āĻžāĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ⧀ āϞāĻŋāĻ™ā§āϕ⧇āĻĄ āϞāĻŋāĻ¸ā§āϟ āϤ⧈āϰāĻŋ āĻšāϝāĻŧ⧇āϛ⧇!

Full Code 02-LL-Structure.js

class CreateNode { constructor(value) { this.value = value; this.next = null; } } class LinkdList { constructor(value) { const newNode = new CreateNode(value); this.head = newNode; this.tail = this.head; this.length = 1; } } let LL1 = new LinkdList(4); /* outPut: LinkdList { head: CreateNode { value: 4, next: null }, tail: CreateNode { value: 4, next: null }, length: 1 } */ 
Enter fullscreen mode Exit fullscreen mode
đŸ”Ĩ05- āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āĻĒ⧁āĻļ (Push) āĻŽā§‡āĻĨāĻĄ <br> 
Enter fullscreen mode Exit fullscreen mode

đŸ”Ĩ05- āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āĻĒ⧁āĻļ (Push) āĻŽā§‡āĻĨāĻĄ

āĻāĻ–āύ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻĒ⧁āĻļ (Push) āĻŽā§‡āĻĨāĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦāĨ¤ āφāϏ⧁āύ āĻĒā§āϰāĻĨāĻŽā§‡ āĻĒāĻĻāĻ•ā§āώ⧇āĻĒāϗ⧁āϞ⧋ āĻĻ⧇āϖ⧇ āύ⧇āĻ“āϝāĻŧāĻž āϝāĻžāĻ•āĨ¤

āĻĒ⧁āĻļ āĻŽā§‡āĻĨāĻĄā§‡āϰ āĻĒāĻĻāĻ•ā§āώ⧇āĻĒ

  1. āύāϤ⧁āύ āύ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāĻž: āĻĒā§āϰāĻĨāĻŽā§‡ āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āύ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤
  2. āϞāĻžāĻ¸ā§āϟ āύ⧋āĻĄā§‡āϰ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰ āϏ⧇āϟ āĻ•āϰāĻž: āϤāĻžāϰāĻĒāϰ, āĻļ⧇āώ āύ⧋āĻĄāϟāĻŋ āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŦ⧇āĨ¤
  3. āĻŸā§‡āχāϞ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž: āĻŸā§‡āχāϞ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰāϟāĻŋāĻ“ āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŦ⧇āĨ¤

corner case

āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻ•āϟāĻŋ āĻāϜ āϕ⧇āϏāĻ“ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰāϤ⧇ āĻšāĻŦ⧇, āϝāĻž āĻšāϞ āϝāĻĻāĻŋ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡ āύ⧋āĻĄ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻŋ āϝāĻž āĻāĻ–āύāĻ“ āĻ–āĻžāϞāĻŋāĨ¤ āĻāχ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āφāĻŽāĻžāĻĻ⧇āϰ āĻšā§‡āĻĄ āĻāĻŦāĻ‚ āĻŸā§‡āχāϞ āωāĻ­āϝāĻŧāχ āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŦ⧇āĨ¤

āϕ⧋āĻĄ āϞ⧇āĻ–āĻž

āĻāĻ–āύ āφāϏ⧁āύ āϕ⧋āĻĄā§‡ āĻĒā§āϰāĻŦ⧇āĻļ āĻ•āϰāĻŋ āĻāĻŦāĻ‚ āĻĒ⧁āĻļ āĻŽā§‡āĻĨāĻĄāϟāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰāĻŋ:

push(value) { const newNode = new Node(value); // āύāϤ⧁āύ āύ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāĻž // āϝāĻĻāĻŋ āĻšā§‡āĻĄ āĻ–āĻžāϞāĻŋ āĻšāϝāĻŧ if (!this.head) { this.head = newNode; // āĻšā§‡āĻĄāϕ⧇ āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻž this.tail = newNode; // āĻŸā§‡āχāϞāϕ⧇āĻ“ āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻž } else { this.tail.next = newNode; // āĻļ⧇āώ āύ⧋āĻĄā§‡āϰ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰāϕ⧇ āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻž this.tail = newNode; // āĻŸā§‡āχāϞāϕ⧇ āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻž } this.length++; // āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ ā§§ āĻŦāĻžāĻĄāĻŧāĻžāύ⧋ return this; // āĻĒ⧁āϰ⧋ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āϟ āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž } 
Enter fullscreen mode Exit fullscreen mode

āϕ⧋āĻĄ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ

  • āύāϤ⧁āύ āύ⧋āĻĄ āϤ⧈āϰāĻŋ: const newNode = new Node(value); āĻāχ āϞāĻžāχāύ⧇ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āύ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāĻ›āĻŋāĨ¤
  • āĻšā§‡āĻĄ āĻšā§‡āĻ•: if (!this.head) āĻāχ āĻļāĻ°ā§āϤāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧇ āϝ⧇ āĻšā§‡āĻĄ āĻ–āĻžāϞāĻŋ āĻ•āĻŋ āύāĻžāĨ¤ āϝāĻĻāĻŋ āĻ–āĻžāϞāĻŋ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āĻšā§‡āĻĄ āĻāĻŦāĻ‚ āĻŸā§‡āχāϞ āωāĻ­āϝāĻŧāχ āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇āĨ¤
  • āύāϤ⧁āύ āύ⧋āĻĄ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž: āϝāĻĻāĻŋ āĻšā§‡āĻĄ āĻ–āĻžāϞāĻŋ āύāĻž āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āĻļ⧇āώ āύ⧋āĻĄā§‡āϰ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰāϕ⧇ āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŋ āĻāĻŦāĻ‚ āĻŸā§‡āχāϞ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻŋāĨ¤
  • āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻŦāĻžāĻĄāĻŧāĻžāύ⧋: this.length++ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āφāĻŽāϰāĻž āϞāĻŋāĻ™ā§āϕ⧇āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻŦāĻžāĻĄāĻŧāĻžāĻšā§āĻ›āĻŋāĨ¤
  • āĻĢāĻŋāϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āĻ“āϝāĻŧāĻž: return this; āĻĒ⧁āϰ⧋ āϞāĻŋāĻ™ā§āϕ⧇āĻĄ āϞāĻŋāĻ¸ā§āϟ āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧāĨ¤

āĻĄā§‡āĻ­āϟ⧁āϞāϏ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž

āĻāĻ–āύ āφāϏ⧁āύ āĻĄā§‡āĻ­āϟ⧁āϞāϏ⧇ āϕ⧋āĻĄāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻŋ:

let myLinkedList = new LinkedList(7); // ā§­ āĻŽāĻžāύ āϏāĻš āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϞāĻŋāĻ™ā§āϕ⧇āĻĄ āϞāĻŋāĻ¸ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻž myLinkedList.push(4); // ā§Ē āĻŽāĻžāύ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž 
Enter fullscreen mode Exit fullscreen mode
  • āϝāĻ–āύ āφāĻŽāϰāĻž myLinkedList.push(4) āĻ•āϞ āĻ•āϰāĻŋ, āĻāϟāĻŋ āĻĒ⧁āϰ⧋ āϞāĻŋāĻ™ā§āϕ⧇āĻĄ āϞāĻŋāĻ¸ā§āϟ āĻĢ⧇āϰāϤ āĻĻ⧇āĻŦ⧇āĨ¤
  • āφāĻŽāϰāĻž āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻŦ āϝ⧇ āĻšā§‡āĻĄ ā§­ āύ⧋āĻĄāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāϛ⧇ āĻāĻŦāĻ‚ āĻŸā§‡āχāϞ ā§Ē āύ⧋āĻĄāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāϛ⧇āĨ¤ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ ⧍āĨ¤

āĻĢāϞāĻžāĻĢāϞ

LinkedList { head: Node { value: 7, next: Node { value: 4, next: null } }, tail: Node { value: 4, next: null }, length: 2 } 
Enter fullscreen mode Exit fullscreen mode

🔲 Full Code

/* 🌟 Create a new node 🌟if it is first clild or head === null assign head pointer to the new Node assign tail pointer to the newNode 🌟 else tail.next = newNode e point koray dibo tail=newNode kore dibo lenght =lenght+1; return this --&gt; this represents the global object */ class CreateNode { constructor(value) { this.value = value; this.next = null; } } class LL { constructor(value) { const newNode = new CreateNode(value); this.head = newNode; this.tail = newNode; this.length = 1; } // push or add node at the end push(value) { const newNode = new CreateNode(value); if (this.head === null) { this.head = newNode; this.tail = newNode; } else { this.tail.next = newNode; this.tail = newNode; } this.length++; return this; } } let myLL = new LL(null); myLL.push(4); myLL.push(4); console.log(myLL); 
Enter fullscreen mode Exit fullscreen mode

āĻāĻŦāĻ‚ āĻāχāĻ­āĻžāĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒ⧁āĻļ āĻŽā§‡āĻĨāĻĄ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ⧀ āĻšāϝāĻŧ⧇āϛ⧇!

đŸ”Ĩ06- āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āĻĒāĻĒ (Pop) āĻŽā§‡āĻĨāĻĄ <br> 
Enter fullscreen mode Exit fullscreen mode

đŸ”Ĩ06- āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āĻĒāĻĒ (Pop) āĻŽā§‡āĻĨāĻĄ

āĻāĻ–āύ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻĒāĻĒ (Pop) āĻŽā§‡āĻĨāĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦāĨ¤

🌟 āĻĒāĻĒ āĻŽā§‡āĻĨāĻĄā§‡āϰ āĻĒāĻĻāĻ•ā§āώ⧇āĻĒ

  1. āĻļ⧇āώ āφāχāĻŸā§‡āĻŽ āĻ…āĻĒāϏāĻžāϰāĻŖ: āĻĒāĻĒ āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻļ⧇āώ āφāχāĻŸā§‡āĻŽāϟāĻŋ āϏāϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āĻŦ⧇ āĻāĻŦāĻ‚ āĻŸā§‡āχāϞāϕ⧇ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āφāχāĻŸā§‡āĻŽā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŦ⧇āĨ¤
  2. āĻ…āĻĒāϏāĻžāϰāĻŋāϤ āφāχāĻŸā§‡āĻŽ āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž: āĻ…āĻĒāϏāĻžāϰāĻŋāϤ āφāχāĻŸā§‡āĻŽāϟāĻŋ āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāĻŦ⧇āĨ¤

🌟 āĻāϜ āϕ⧇āϏ

āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻŋāϛ⧁ āĻāϜ āϕ⧇āϏ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰāϤ⧇ āĻšāĻŦ⧇:

  1. āĻļā§‚āĻ¨ā§āϝ āφāχāĻŸā§‡āĻŽ: āϝāĻĻāĻŋ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡ āϕ⧋āύāĻ“ āφāχāĻŸā§‡āĻŽ āύāĻž āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āφāĻŽāϰāĻž āĻ•āĻŋāϛ⧁ āĻ…āĻĒāϏāĻžāϰāĻŖ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āύāĻžāĨ¤
  2. āĻāĻ•āϟāĻŋ āφāχāĻŸā§‡āĻŽ: āϝāĻĻāĻŋ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡ āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ āφāχāĻŸā§‡āĻŽ āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻŦāĻŋāĻļ⧇āώāĻ­āĻžāĻŦ⧇ āϕ⧋āĻĄ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤

🌟āĻĒāĻĒ āĻŽā§‡āĻĨāĻĄā§‡āϰ Logic

  • āĻŸā§‡āχāϞāϕ⧇ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āφāχāĻŸā§‡āĻŽā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻž: āĻāϟāĻŋ āĻ•āĻŋāϛ⧁āϟāĻž āϜāϟāĻŋāϞ, āĻ•āĻžāϰāĻŖ āφāĻŽāĻžāĻĻ⧇āϰ āĻŸā§‡āχāϞāϕ⧇ āĻŦāĻžāĻŽ āĻĻāĻŋāϕ⧇ āϏāϰāĻžāϤ⧇ āĻšāĻŦ⧇āĨ¤
  • āύ⧇āĻ¸ā§āĻŸā§‡āĻĄ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĻ⧇āĻ–āϤ⧇ āĻšāĻŦ⧇: āĻŸā§‡āχāϞāϕ⧇ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āφāχāĻŸā§‡āĻŽā§‡ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āφāĻŽāĻžāĻĻ⧇āϰ āĻšā§‡āĻĄ āĻĨ⧇āϕ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧇ āĻĒ⧁āϰ⧋ āϤāĻžāϞāĻŋāĻ•āĻžāϟāĻŋ āĻĒāĻžāϰ āĻšāϤ⧇ āĻšāĻŦ⧇āĨ¤

🌟 āϕ⧋āĻĄāĻŋāĻ‚ āĻĒāϰāĻŋāĻ•āĻ˛ā§āĻĒāύāĻž

  1. āύāϤ⧁āύ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ āϤ⧈āϰāĻŋ āĻ•āϰāĻž:
  • temp: āĻāϟāĻŋ āĻļ⧇āώ āύ⧋āĻĄāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŦ⧇āĨ¤
  • pre: āĻāϟāĻŋ āĻļ⧇āώ⧇āϰ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŦ⧇āĨ¤
  1. āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻŽāĻ§ā§āϝ āĻĻāĻŋāϝāĻŧ⧇ āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋ āĻ•āϰāĻž:
  • temp āĻāϰ next āϝāĻĻāĻŋ āĻ…āĻ¨ā§āϝ āύ⧋āĻĄāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇, āϤāĻžāĻšāϞ⧇ pre āϕ⧇ āφāĻĒāĻĄā§‡āϟ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ temp āϕ⧇ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡ āϏāϰāĻžāύāĨ¤
  • āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋ āϚāϞāϤ⧇ āĻĨāĻžāĻ•āĻŦ⧇ āϝāϤāĻ•ā§āώāĻŖ āύāĻž temp.next null āĻšāϝāĻŧāĨ¤
  1. āĻŸā§‡āχāϞ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž:
  • āĻŸā§‡āχāϞāϕ⧇ pre āĻāϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧁āύāĨ¤
  • tail.next āϕ⧇ null āϏ⧇āϟ āĻ•āϰ⧁āύ, āϝāĻž āĻļ⧇āώ āύ⧋āĻĄāϟāĻŋ āϏāϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āĻŦ⧇āĨ¤
  1. āĻ…āĻĒāϏāĻžāϰāĻŋāϤ āύ⧋āĻĄ āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž:
    • āĻ…āĻŦāĻļ⧇āώ⧇, temp āĻĢ⧇āϰāϤ āĻĻāĻŋāύ, āϝāĻž āĻ…āĻĒāϏāĻžāϰāĻŋāϤ āύ⧋āĻĄāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŦ⧇āĨ¤

āϕ⧋āĻĄ āωāĻĻāĻžāĻšāϰāĻŖ

pop() { // case 0 items if (!this.head) { return undefined; // āϝāĻĻāĻŋ āϤāĻžāϞāĻŋāĻ•āĻž āĻ–āĻžāϞāĻŋ āĻšāϝāĻŧ } // case two or more items let temp = this.head; let pre = this.head; // āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻŽāĻ§ā§āϝ āĻĻāĻŋāϝāĻŧ⧇ āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋ āĻ•āϰāĻž means as long as temp !== null while (temp.next) { pre = temp; // āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž temp = temp.next; // āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡ āϝāĻžāĻ“āϝāĻŧāĻž } this.tail = pre; // āĻŸā§‡āχāϞāϕ⧇ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻž this.tail.next = null; // āĻļ⧇āώ āύ⧋āĻĄ āĻ…āĻĒāϏāĻžāϰāĻŖ āĻ•āϰāĻž this.length --; return temp; // āĻ…āĻĒāϏāĻžāϰāĻŋāϤ āύ⧋āĻĄ āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž //case for one items this.tail = pre; // āĻŸā§‡āχāϞāϕ⧇ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻž this.tail.next = null; // āĻļ⧇āώ āύ⧋āĻĄ āĻ…āĻĒāϏāĻžāϰāĻŖ āĻ•āϰāĻž this.length --; if(this.length ===0){ this.head =null; this.tail =null; } return temp } 
Enter fullscreen mode Exit fullscreen mode

āĻāϟāĻŋ āĻ›āĻŋāϞ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒāĻĒ āĻŽā§‡āĻĨāĻĄā§‡āϰ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻŦāĻŋāĻŦāϰāĻŖāĨ¤

🌟 āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āĻĒāĻĒ (Pop) āĻŽā§‡āĻĨāĻĄ

āĻāĻ–āύ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āĻĒāĻĒ (Pop) āĻŽā§‡āĻĨāĻĄāϟāĻŋ āϕ⧋āĻĄ āĻ•āϰāĻŦāĨ¤ āĻāχ āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻļ⧇āώ āφāχāĻŸā§‡āĻŽāϟāĻŋ āϏāϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āĻŦ⧇ āĻāĻŦāĻ‚ āĻŸā§‡āχāϞāϕ⧇ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āφāχāĻŸā§‡āĻŽā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŦ⧇āĨ¤

āĻĒāĻĒ āĻŽā§‡āĻĨāĻĄā§‡āϰ āĻĒāĻĻāĻ•ā§āώ⧇āĻĒ

  1. āĻļā§‚āĻ¨ā§āϝ āφāχāĻŸā§‡āĻŽ āĻšā§‡āĻ• āĻ•āϰāĻž: āĻĒā§āϰāĻĨāĻŽā§‡ āĻšā§‡āĻ• āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝ⧇ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡ āϕ⧋āύ⧋ āφāχāĻŸā§‡āĻŽ āφāϛ⧇ āĻ•āĻŋāύāĻžāĨ¤
  2. āĻāĻ•āϟāĻŋ āφāχāĻŸā§‡āĻŽ āĻšā§‡āĻ• āĻ•āϰāĻž: āϝāĻĻāĻŋ āĻāĻ•āϟāĻŋ āĻŽāĻžāĻ¤ā§āϰ āφāχāĻŸā§‡āĻŽ āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āĻšā§‡āĻĄ āĻāĻŦāĻ‚ āĻŸā§‡āχāϞ āωāĻ­āϝāĻŧāχ āϏ⧇āχ āφāχāĻŸā§‡āĻŽā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŦ⧇āĨ¤
  3. āĻĻ⧁āχ āĻŦāĻž āϤāϤ⧋āϧāĻŋāĻ• āφāχāĻŸā§‡āĻŽ āĻĨāĻžāĻ•āĻž: āϝāĻĻāĻŋ āĻĻ⧁āϟāĻŋ āĻŦāĻž āϤāĻžāϰ āĻŦ⧇āĻļāĻŋ āφāχāĻŸā§‡āĻŽ āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡ āϝāĻžāĻ“āϝāĻŧāĻžāϰ āϜāĻ¨ā§āϝ āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻŽāĻ§ā§āϝ āĻĻāĻŋāϝāĻŧ⧇ āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤

āϕ⧋āĻĄāĻŋāĻ‚ āĻĒāϰāĻŋāĻ•āĻ˛ā§āĻĒāύāĻž

pop() { // ā§§. āĻļā§‚āĻ¨ā§āϝ āφāχāĻŸā§‡āĻŽ āĻšā§‡āĻ• āĻ•āϰāĻž if (!this.head || this.length === 0) { return undefined; // āϤāĻžāϞāĻŋāĻ•āĻž āĻ–āĻžāϞāĻŋ āĻšāϞ⧇ undefined āĻĢ⧇āϰāϤ āĻĻāĻŋāύ } let temp = this.head; // āĻŸā§‡āĻŽā§āĻĒ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ āĻšā§‡āĻĄāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ let pre = null; // āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡āϰ āϜāĻ¨ā§āϝ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ // ⧍. āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻŽāĻ§ā§āϝ āĻĻāĻŋāϝāĻŧ⧇ āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋ āĻ•āϰāĻž while (temp.next) { pre = temp; // āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž temp = temp.next; // āĻŸā§‡āĻŽā§āĻĒāϕ⧇ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡ āϏāϰāĻžāύ⧋ } // ā§Š. āĻŸā§‡āχāϞ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž this.tail = pre; // āĻŸā§‡āχāϞāϕ⧇ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻž this.tail.next = null; // āĻļ⧇āώ āύ⧋āĻĄ āĻ…āĻĒāϏāĻžāϰāĻŖ āĻ•āϰāĻž this.length--; // āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻ•āĻŽāĻžāύ⧋ // ā§Ē. āĻāĻ•āĻŽāĻžāĻ¤ā§āϰ āφāχāĻŸā§‡āĻŽ āĻĨāĻžāĻ•āϞ⧇ āĻšā§‡āĻĄ āĻāĻŦāĻ‚ āĻŸā§‡āχāϞ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž if (this.length === 0) { this.head = null; this.tail = null; } return temp; // āĻ…āĻĒāϏāĻžāϰāĻŋāϤ āύ⧋āĻĄ āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž } 
Enter fullscreen mode Exit fullscreen mode

āϕ⧋āĻĄ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ

  • āĻļā§‚āĻ¨ā§āϝ āφāχāĻŸā§‡āĻŽ āĻšā§‡āĻ•: if (!this.head || this.length === 0) āĻāχ āĻļāĻ°ā§āϤāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧇ āϝ⧇ āϤāĻžāϞāĻŋāĻ•āĻž āĻ–āĻžāϞāĻŋ āĻ•āĻŋ āύāĻžāĨ¤ āϝāĻĻāĻŋ āĻ–āĻžāϞāĻŋ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ undefined āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧāĨ¤
  • āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋ: while (temp.next) āĻāχ āĻļāĻ°ā§āϤāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻŽāϰāĻž āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻļ⧇āώ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻĒ⧌āρāĻ›āĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋ āĻ•āϰāĻŋāĨ¤
  • āĻŸā§‡āχāϞ āφāĻĒāĻĄā§‡āϟ: this.tail = pre āĻĻā§āĻŦāĻžāϰāĻž āĻŸā§‡āχāϞāϕ⧇ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŋ āĻāĻŦāĻ‚ this.tail.next = null āĻĻā§āĻŦāĻžāϰāĻž āĻļ⧇āώ āύ⧋āĻĄ āĻ…āĻĒāϏāĻžāϰāĻŖ āĻ•āϰāĻŋāĨ¤
  • āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āφāĻĒāĻĄā§‡āϟ: this.length-- āĻĻā§āĻŦāĻžāϰāĻž āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻ•āĻŽāĻžāύ⧋ āĻšāϝāĻŧāĨ¤ āϝāĻĻāĻŋ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻļā§‚āĻ¨ā§āϝ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āĻšā§‡āĻĄ āĻāĻŦāĻ‚ āĻŸā§‡āχāϞ āωāĻ­āϝāĻŧāϕ⧇āχ null āĻ āϏ⧇āϟ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤

āĻĄā§‡āĻ­āϟ⧁āϞāϏ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž

āĻāĻ–āύ āφāϏ⧁āύ āĻĄā§‡āĻ­āϟ⧁āϞāϏ⧇ āϕ⧋āĻĄāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻŋ:

let myLinkedList = new LinkedList(1); // ā§§ āĻŽāĻžāύ āϏāĻš āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϞāĻŋāĻ™ā§āϕ⧇āĻĄ āϞāĻŋāĻ¸ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻž myLinkedList.push(2); // ⧍ āĻŽāĻžāύ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž console.log(myLinkedList.pop()); // āĻāϟāĻŋ ⧍ āύ⧋āĻĄ āĻĢ⧇āϰāϤ āĻĻ⧇āĻŦ⧇ console.log(myLinkedList); // āĻāĻ–āύ āĻšā§‡āĻĄ ā§§ āύ⧋āĻĄāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŦ⧇, āĻŸā§‡āχāϞāĻ“ ā§§ āĻšāĻŦ⧇ console.log(myLinkedList.pop()); // āĻāϟāĻŋ ā§§ āύ⧋āĻĄ āĻĢ⧇āϰāϤ āĻĻ⧇āĻŦ⧇ console.log(myLinkedList); // āĻāĻ–āύ āϤāĻžāϞāĻŋāĻ•āĻž āĻ–āĻžāϞāĻŋ āĻšāĻŦ⧇, āĻšā§‡āĻĄ āĻāĻŦāĻ‚ āĻŸā§‡āχāϞ āωāĻ­āϝāĻŧāχ null āĻšāĻŦ⧇ console.log(myLinkedList.pop()); // āĻāϟāĻŋ undefined āĻĢ⧇āϰāϤ āĻĻ⧇āĻŦ⧇ āĻ•āĻžāϰāĻŖ āϤāĻžāϞāĻŋāĻ•āĻž āĻ–āĻžāϞāĻŋ 
Enter fullscreen mode Exit fullscreen mode

āĻĢāϞāĻžāĻĢāϞ

  • āĻĒā§āϰāĻĨāĻŽ āĻĒāĻĒ āĻ•āϞ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāϟāĻŋ ⧍ āύ⧋āĻĄ āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧ āĻāĻŦāĻ‚ āϤāĻžāϞāĻŋāĻ•āĻžāϝāĻŧ ā§§ āύ⧋āĻĄ āĻĨāĻžāϕ⧇āĨ¤
  • āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ āĻĒāĻĒ āĻ•āϞ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāϟāĻŋ ā§§ āύ⧋āĻĄ āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧ āĻāĻŦāĻ‚ āϤāĻžāϞāĻŋāĻ•āĻž āĻ–āĻžāϞāĻŋ āĻšāϝāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤
  • āϤ⧃āϤ⧀āϝāĻŧ āĻĒāĻĒ āĻ•āϞ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāϟāĻŋ undefined āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧāĨ¤

āĻāĻŦāĻ‚ āĻāχāĻ­āĻžāĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒāĻĒ āĻŽā§‡āĻĨāĻĄ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ⧀ āĻšāϝāĻŧ⧇āϛ⧇!

🔲 Full Code

/* Pop is O(n) operation. case 1: no element case 2: two or more elements case 3: 1 element */ class CreateNode { constructor(value) { this.value = value; this.next = null; } } class LinkdList { constructor(value) { const newNode = new CreateNode(value); this.head = newNode; this.tail = newNode; this.length = 1; } // push or add node at the end push(value) { const newNode = new CreateNode(value); if (this.head === null) { this.head = newNode; this.tail = newNode; } else { this.tail.next = newNode; this.tail = newNode; } this.length++; return this; }; // pop or remove node at the last O(n) pop(){ // case 1: no element if(!this.head || this.length ===0){ return undefined; } // case 2: two or more elements let temp =this.head; let pre =this.head; while(temp.next !==null){ pre =temp; temp = temp.next; } //both case 2 and 3 this.tail =pre; this.tail.next =null; this.length --; // case 3: 1 element if(this.length ===0){ this.head =null; this.tail =null; } return temp; } }; let myLinkedList =new LinkdList(1); myLinkedList.push(23); myLinkedList.push(26); console.log(myLinkedList) myLinkedList.pop() console.log(myLinkedList); myLinkedList.pop() console.log(myLinkedList); myLinkedList.pop() console.log(myLinkedList) myLinkedList.pop() console.log(myLinkedList); 
Enter fullscreen mode Exit fullscreen mode
đŸ”Ĩ07- āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āφāύāĻļāĻŋāĻĢāϟ (Unshift) āĻŽā§‡āĻĨāĻĄ <br> 
Enter fullscreen mode Exit fullscreen mode

đŸ”Ĩ07- āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āφāύāĻļāĻŋāĻĢāϟ (Unshift) āĻŽā§‡āĻĨāĻĄ

āĻāĻ–āύ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āφāύāĻļāĻŋāĻĢāϟ (Unshift) āĻŽā§‡āĻĨāĻĄāϟāĻŋ āϞāĻŋāĻ–āĻŦāĨ¤ āφāύāĻļāĻŋāĻĢāϟ āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āύ⧋āĻĄāϕ⧇ āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻļ⧁āϰ⧁āϤ⧇ āϝ⧁āĻ•ā§āϤ āĻ•āϰ⧇āĨ¤

āφāύāĻļāĻŋāĻĢāϟ āĻŽā§‡āĻĨāĻĄā§‡āϰ āĻĒāĻĻāĻ•ā§āώ⧇āĻĒ

  1. āύāϤ⧁āύ āύ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāĻž: āĻĒā§āϰāĻĨāĻŽā§‡ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āύ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤
  2. āĻšā§‡āĻĄ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž: āύāϤ⧁āύ āύ⧋āĻĄāϟāĻŋ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻšā§‡āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŦ⧇āĨ¤
  3. āĻšā§‡āĻĄ āĻāĻŦāĻ‚ āĻŸā§‡āχāϞ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž: āϝāĻĻāĻŋ āϤāĻžāϞāĻŋāĻ•āĻž āĻ–āĻžāϞāĻŋ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āĻšā§‡āĻĄ āĻāĻŦāĻ‚ āĻŸā§‡āχāϞ āωāĻ­āϝāĻŧāχ āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŦ⧇āĨ¤

āϕ⧋āĻĄāĻŋāĻ‚ āĻĒāϰāĻŋāĻ•āĻ˛ā§āĻĒāύāĻž

unshift(value) { const newNode = new Node(value); // āύāϤ⧁āύ āύ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāĻž // āϝāĻĻāĻŋ āϤāĻžāϞāĻŋāĻ•āĻž āĻ–āĻžāϞāĻŋ āĻšāϝāĻŧ if (!this.head) { this.head = newNode; // āĻšā§‡āĻĄāϕ⧇ āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻž this.tail = newNode; // āĻŸā§‡āχāϞāϕ⧇āĻ“ āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻž } else { newNode.next = this.head; // āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰāϕ⧇ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻšā§‡āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻž this.head = newNode; // āĻšā§‡āĻĄāϕ⧇ āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻž } this.length++; // āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ ā§§ āĻŦāĻžāĻĄāĻŧāĻžāύ⧋ return this; // āĻĒ⧁āϰ⧋ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āϟ āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž } 
Enter fullscreen mode Exit fullscreen mode

āϕ⧋āĻĄ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ

  • āύāϤ⧁āύ āύ⧋āĻĄ āϤ⧈āϰāĻŋ: const newNode = new Node(value); āĻāχ āϞāĻžāχāύ⧇ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āύ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāĻ›āĻŋāĨ¤
  • āĻšā§‡āĻĄ āĻšā§‡āĻ•: if (!this.head) āĻāχ āĻļāĻ°ā§āϤāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧇ āϝ⧇ āϤāĻžāϞāĻŋāĻ•āĻž āĻ–āĻžāϞāĻŋ āĻ•āĻŋ āύāĻžāĨ¤ āϝāĻĻāĻŋ āĻ–āĻžāϞāĻŋ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āĻšā§‡āĻĄ āĻāĻŦāĻ‚ āĻŸā§‡āχāϞ āωāĻ­āϝāĻŧāχ āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇āĨ¤
  • āύāϤ⧁āύ āύ⧋āĻĄ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž: āϝāĻĻāĻŋ āϤāĻžāϞāĻŋāĻ•āĻž āĻ–āĻžāϞāĻŋ āύāĻž āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ newNode.next = this.head; āĻĻā§āĻŦāĻžāϰāĻž āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰāϕ⧇ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻšā§‡āĻĄā§‡ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŋ āĻāĻŦāĻ‚ āĻĒāϰ⧇ āĻšā§‡āĻĄ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻŋāĨ¤
  • āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻŦāĻžāĻĄāĻŧāĻžāύ⧋: this.length++ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āφāĻŽāϰāĻž āϞāĻŋāĻ™ā§āϕ⧇āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻŦāĻžāĻĄāĻŧāĻžāĻšā§āĻ›āĻŋāĨ¤
  • āĻĢāĻŋāϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āĻ“āϝāĻŧāĻž: return this; āĻĒ⧁āϰ⧋ āϞāĻŋāĻ™ā§āϕ⧇āĻĄ āϞāĻŋāĻ¸ā§āϟ āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧāĨ¤

āĻĄā§‡āĻ­āϟ⧁āϞāϏ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž

āĻāĻ–āύ āφāϏ⧁āύ āĻĄā§‡āĻ­āϟ⧁āϞāϏ⧇ āϕ⧋āĻĄāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻŋ:

let myLinkedList = new LinkedList(11); // ā§§ā§§ āĻŽāĻžāύ āϏāĻš āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϞāĻŋāĻ™ā§āϕ⧇āĻĄ āϞāĻŋāĻ¸ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻž myLinkedList.unshift(4); // ā§Ē āĻŽāĻžāύ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž 
Enter fullscreen mode Exit fullscreen mode
  • āϝāĻ–āύ āφāĻŽāϰāĻž myLinkedList.unshift(4) āĻ•āϞ āĻ•āϰāĻŋ, āĻāϟāĻŋ āĻĒ⧁āϰ⧋ āϞāĻŋāĻ™ā§āϕ⧇āĻĄ āϞāĻŋāĻ¸ā§āϟ āĻĢ⧇āϰāϤ āĻĻ⧇āĻŦ⧇āĨ¤

āĻĢāϞāĻžāĻĢāϞ

LinkedList { head: Node { value: 4, next: Node { value: 11, next: null } }, tail: Node { value: 11, next: null }, length: 2 } 
Enter fullscreen mode Exit fullscreen mode

āĻāĻŦāĻ‚ āĻāχāĻ­āĻžāĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āφāύāĻļāĻŋāĻĢāϟ (Unshift) āĻŽā§‡āĻĨāĻĄ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ⧀ āĻšāϝāĻŧ⧇āϛ⧇!

🔲 Full Code

class CreateNode { constructor(value) { this.value = value; this.next = null; } } class LinkdList { constructor(value) { const newNode = new CreateNode(value); this.head = newNode; this.tail = newNode; this.length = 1; } // push or add node at the end push(value) { const newNode = new CreateNode(value); if (this.head === null) { this.head = newNode; this.tail = newNode; } else { this.tail.next = newNode; this.tail = newNode; } this.length++; return this; } pop() { if (!this.head) return undefined; let temp = this.head; let pre = this.head; while (temp.next) { pre = temp; temp = temp.next; } this.tail = pre; this.tail.next = null; this.length--; if (this.length === 0) { this.head = null; this.tail = null; } return temp; }; unshift(value){ const newNode =new CreateNode(value); if(!this.head){ this.head = newNode; this.tail = newNode; }else{ newNode.next =this.head; // pointer update this.head =newNode; // new node k head banalam  // newNode =this.head; // not working anymore } this.length++; return this; //whole linked list } } let myLinkedList = new LinkdList(1); myLinkedList.push(20); myLinkedList.push(70); myLinkedList.push(40); // console.log(myLinkedList); myLinkedList.unshift(33); console.log(myLinkedList); 
Enter fullscreen mode Exit fullscreen mode
đŸ”Ĩ08- āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āĻļāĻŋāĻĢāϟ (Shift) āĻŽā§‡āĻĨāĻĄ <br> 
Enter fullscreen mode Exit fullscreen mode

đŸ”Ĩ08 āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āĻļāĻŋāĻĢāϟ (Shift) āĻŽā§‡āĻĨāĻĄ

āĻāĻ–āύ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻļāĻŋāĻĢāϟ (Shift) āĻŽā§‡āĻĨāĻĄāϟāĻŋ āϞāĻŋāĻ–āĻŦāĨ¤ āĻļāĻŋāĻĢāϟ āĻŽā§‡āĻĨāĻĄāϟāĻŋ āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻĒā§āϰāĻĨāĻŽ āφāχāĻŸā§‡āĻŽāϟāĻŋ āϏāϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āĻŦ⧇ āĻāĻŦāĻ‚ āϏ⧇āχ āφāχāĻŸā§‡āĻŽāϟāĻŋ āĻĢ⧇āϰāϤ āĻĻ⧇āĻŦ⧇āĨ¤

āĻļāĻŋāĻĢāϟ āĻŽā§‡āĻĨāĻĄā§‡āϰ āĻĒāĻĻāĻ•ā§āώ⧇āĻĒ

  1. āĻļā§‚āĻ¨ā§āϝ āφāχāĻŸā§‡āĻŽ āĻšā§‡āĻ• āĻ•āϰāĻž: āĻĒā§āϰāĻĨāĻŽā§‡ āĻšā§‡āĻ• āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝ⧇ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡ āϕ⧋āύ⧋ āφāχāĻŸā§‡āĻŽ āφāϛ⧇ āĻ•āĻŋāύāĻžāĨ¤
  2. āĻāĻ•āϟāĻŋ āφāχāĻŸā§‡āĻŽ āĻĨāĻžāĻ•āĻž: āϝāĻĻāĻŋ āĻāĻ•āϟāĻŋ āĻŽāĻžāĻ¤ā§āϰ āφāχāĻŸā§‡āĻŽ āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āĻšā§‡āĻĄ āĻāĻŦāĻ‚ āĻŸā§‡āχāϞ āωāĻ­āϝāĻŧāχ āϏ⧇āχ āφāχāĻŸā§‡āĻŽā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŦ⧇āĨ¤
  3. āĻĻ⧁āχ āĻŦāĻž āϤāϤ⧋āϧāĻŋāĻ• āφāχāĻŸā§‡āĻŽ āĻĨāĻžāĻ•āĻž: āϝāĻĻāĻŋ āĻĻ⧁āϟāĻŋ āĻŦāĻž āϤāĻžāϰ āĻŦ⧇āĻļāĻŋ āφāχāĻŸā§‡āĻŽ āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āĻšā§‡āĻĄāϕ⧇ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤

āϕ⧋āĻĄāĻŋāĻ‚ āĻĒāϰāĻŋāĻ•āĻ˛ā§āĻĒāύāĻž

shift() { // ā§§. āĻļā§‚āĻ¨ā§āϝ āφāχāĻŸā§‡āĻŽ āĻšā§‡āĻ• āĻ•āϰāĻž if (!this.head) { return undefined; // āϤāĻžāϞāĻŋāĻ•āĻž āĻ–āĻžāϞāĻŋ āĻšāϞ⧇ undefined āĻĢ⧇āϰāϤ āĻĻāĻŋāύ } let temp = this.head; // āĻŸā§‡āĻŽā§āĻĒ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ āĻšā§‡āĻĄāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ // ⧍. āĻšā§‡āĻĄ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž this.head = this.head.next; // āĻšā§‡āĻĄāϕ⧇ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻž // ā§Š. āĻ…āĻĒāϏāĻžāϰāĻŋāϤ āύ⧋āĻĄā§‡āϰ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰāϕ⧇ null āϏ⧇āϟ āĻ•āϰāĻž temp.next = null; // ā§Ē. āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻ•āĻŽāĻžāύ⧋ this.length--; // ā§Ģ. āϝāĻĻāĻŋ āϤāĻžāϞāĻŋāĻ•āĻž āĻ–āĻžāϞāĻŋ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āĻŸā§‡āχāϞ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž if (this.length === 0) { this.tail = null; } return temp; // āĻ…āĻĒāϏāĻžāϰāĻŋāϤ āύ⧋āĻĄ āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž } 
Enter fullscreen mode Exit fullscreen mode

āϕ⧋āĻĄ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ

  • āĻļā§‚āĻ¨ā§āϝ āφāχāĻŸā§‡āĻŽ āĻšā§‡āĻ•: if (!this.head) āĻāχ āĻļāĻ°ā§āϤāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧇ āϝ⧇ āϤāĻžāϞāĻŋāĻ•āĻž āĻ–āĻžāϞāĻŋ āĻ•āĻŋ āύāĻžāĨ¤ āϝāĻĻāĻŋ āĻ–āĻžāϞāĻŋ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ undefined āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧāĨ¤
  • āĻšā§‡āĻĄ āφāĻĒāĻĄā§‡āϟ: this.head = this.head.next; āĻĻā§āĻŦāĻžāϰāĻž āĻšā§‡āĻĄāϕ⧇ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻŋāĨ¤
  • āĻ…āĻĒāϏāĻžāϰāĻŋāϤ āύ⧋āĻĄā§‡āϰ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰ āφāĻĒāĻĄā§‡āϟ: temp.next = null; āĻĻā§āĻŦāĻžāϰāĻž āĻ…āĻĒāϏāĻžāϰāĻŋāϤ āύ⧋āĻĄā§‡āϰ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰāϕ⧇ null āϏ⧇āϟ āĻ•āϰāĻŋāĨ¤
  • āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āφāĻĒāĻĄā§‡āϟ: this.length-- āĻĻā§āĻŦāĻžāϰāĻž āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻ•āĻŽāĻžāύ⧋ āĻšāϝāĻŧāĨ¤ āϝāĻĻāĻŋ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻļā§‚āĻ¨ā§āϝ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āĻŸā§‡āχāϞāϕ⧇āĻ“ null āĻ āϏ⧇āϟ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤

āĻĄā§‡āĻ­āϟ⧁āϞāϏ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž

āĻāĻ–āύ āφāϏ⧁āύ āĻĄā§‡āĻ­āϟ⧁āϞāϏ⧇ āϕ⧋āĻĄāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻŋ:

let myLinkedList = new LinkedList(2); // ⧍ āĻŽāĻžāύ āϏāĻš āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϞāĻŋāĻ™ā§āϕ⧇āĻĄ āϞāĻŋāĻ¸ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻž myLinkedList.unshift(1); // ā§§ āĻŽāĻžāύ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž console.log(myLinkedList.shift()); // āĻāϟāĻŋ ā§§ āύ⧋āĻĄ āĻĢ⧇āϰāϤ āĻĻ⧇āĻŦ⧇ console.log(myLinkedList); // āĻāĻ–āύ āϤāĻžāϞāĻŋāĻ•āĻžāϝāĻŧ ⧍ āύ⧋āĻĄ āĻĨāĻžāĻ•āĻŦ⧇ myLinkedList.shift(); // āĻāϟāĻŋ ⧍ āύ⧋āĻĄ āĻĢ⧇āϰāϤ āĻĻ⧇āĻŦ⧇ console.log(myLinkedList); // āĻāĻ–āύ āϤāĻžāϞāĻŋāĻ•āĻž āĻ–āĻžāϞāĻŋ āĻšāĻŦ⧇, āĻšā§‡āĻĄ āĻāĻŦāĻ‚ āĻŸā§‡āχāϞ āωāĻ­āϝāĻŧāχ null āĻšāĻŦ⧇ console.log(myLinkedList.shift()); // āĻāϟāĻŋ undefined āĻĢ⧇āϰāϤ āĻĻ⧇āĻŦ⧇ āĻ•āĻžāϰāĻŖ āϤāĻžāϞāĻŋāĻ•āĻž āĻ–āĻžāϞāĻŋ 
Enter fullscreen mode Exit fullscreen mode

āĻĢāϞāĻžāĻĢāϞ

  • āĻĒā§āϰāĻĨāĻŽ āĻļāĻŋāĻĢāϟ āĻ•āϞ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāϟāĻŋ ā§§ āύ⧋āĻĄ āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧ āĻāĻŦāĻ‚ āϤāĻžāϞāĻŋāĻ•āĻžāϝāĻŧ ⧍ āύ⧋āĻĄ āĻĨāĻžāϕ⧇āĨ¤
  • āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ āĻļāĻŋāĻĢāϟ āĻ•āϞ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāϟāĻŋ ⧍ āύ⧋āĻĄ āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧ āĻāĻŦāĻ‚ āϤāĻžāϞāĻŋāĻ•āĻž āĻ–āĻžāϞāĻŋ āĻšāϝāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤
  • āϤ⧃āϤ⧀āϝāĻŧ āĻļāĻŋāĻĢāϟ āĻ•āϞ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāϟāĻŋ undefined āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧāĨ¤

āĻāĻŦāĻ‚ āĻāχāĻ­āĻžāĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻļāĻŋāĻĢāϟ (Shift) āĻŽā§‡āĻĨāĻĄ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ⧀ āĻšāϝāĻŧ⧇āϛ⧇!

Full Code

class CreateNode { constructor(value) { this.value = value; this.next = null; } } class LinkdList { constructor(value) { const newNode = new CreateNode(value); this.head = newNode; this.tail = newNode; this.length = 1; } //todo: Add Node // push or add node at the end push(value) { const newNode = new CreateNode(value); if (this.head === null) { this.head = newNode; this.tail = newNode; } else { this.tail.next = newNode; this.tail = newNode; } this.length++; return this; } // add node at the start unshift(value){ const newNode =new CreateNode(value); if(!this.head){ this.head = newNode; this.tail = newNode; }else{ newNode.next =this.head; // pointer update this.head =newNode; // new node k head banalam  } this.length++; return this; //whole linked list } //todo: Delete Node  // remove from end pop() { if (!this.head) return undefined; let temp = this.head; let pre = this.head; while (temp.next) { pre = temp; temp = temp.next; } this.tail = pre; this.tail.next = null; this.length--; if (this.length === 0) { this.head = null; this.tail = null; } return temp; }; //remove from first shift(){ if(!this.head) return this.undefined; let tempNode =this.head; // tempNode pointing to the head this.head =this.head.next; // move head pointer tempNode.next= null; // finally ser tempNode to null for detaching from head this.length--; if(this.length ===0){ this.tail =null; } return this; } } let myLinkedList = new LinkdList(1); myLinkedList.push(20); myLinkedList.unshift(33); console.log(myLinkedList); myLinkedList.shift(); console.log(myLinkedList); 
Enter fullscreen mode Exit fullscreen mode
đŸ”Ĩ09 -āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āϗ⧇āϟ (Get) āĻŽā§‡āĻĨāĻĄ <br> 
Enter fullscreen mode Exit fullscreen mode

đŸ”Ĩ09 -āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āϗ⧇āϟ (Get) āĻŽā§‡āĻĨāĻĄ

āĻāĻ–āύ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āϗ⧇āϟ (Get) āĻŽā§‡āĻĨāĻĄāϟāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦāĨ¤ āϗ⧇āϟ āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āχāύāĻĄā§‡āĻ•ā§āϏ⧇ āĻĨāĻžāĻ•āĻž āύ⧋āĻĄāϟāĻŋ āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧāĨ¤

āϗ⧇āϟ āĻŽā§‡āĻĨāĻĄā§‡āϰ āĻĒāĻĻāĻ•ā§āώ⧇āĻĒ

  1. āχāύāĻĄā§‡āĻ•ā§āϏ āĻšā§‡āĻ• āĻ•āϰāĻž: āĻĒā§āϰāĻĨāĻŽā§‡ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝ⧇ āχāύāĻĄā§‡āĻ•ā§āϏāϟāĻŋ āĻŦ⧈āϧ āĻ•āĻŋāύāĻžāĨ¤
  2. āύ⧋āĻĄ āĻ–ā§‹āρāϜāĻž: āϝāĻĻāĻŋ āχāύāĻĄā§‡āĻ•ā§āϏ āĻŦ⧈āϧ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻļ⧁āϰ⧁ āĻĨ⧇āϕ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āχāύāĻĄā§‡āĻ•ā§āϏ⧇ āĻĒ⧌āρāĻ›āĻžāϤ⧇ āĻšāĻŦ⧇āĨ¤
  3. āύ⧋āĻĄ āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž: āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āχāύāĻĄā§‡āĻ•ā§āϏ⧇āϰ āύ⧋āĻĄāϟāĻŋ āĻĢ⧇āϰāϤ āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇āĨ¤

āϕ⧋āĻĄāĻŋāĻ‚ āĻĒāϰāĻŋāĻ•āĻ˛ā§āĻĒāύāĻž

get(index) { // ā§§. āχāύāĻĄā§‡āĻ•ā§āϏ āĻšā§‡āĻ• āĻ•āϰāĻž if (index &lt; 0 || index &gt;= this.length) { return undefined; // āĻ…āĻŦ⧈āϧ āχāύāĻĄā§‡āĻ•ā§āϏ āĻšāϞ⧇ undefined āĻĢ⧇āϰāϤ āĻĻāĻŋāύ } let temp = this.head; // āĻŸā§‡āĻŽā§āĻĒ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ āĻšā§‡āĻĄāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ // ⧍. āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻŽāĻ§ā§āϝ āĻĻāĻŋāϝāĻŧ⧇ āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋ āĻ•āϰāĻž for (let i = 0; i &lt; index; i++) { temp = temp.next; // āĻŸā§‡āĻŽā§āĻĒāϕ⧇ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡ āϏāϰāĻžāύ⧋ } return temp; // āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āχāύāĻĄā§‡āĻ•ā§āϏ⧇āϰ āύ⧋āĻĄ āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž } 
Enter fullscreen mode Exit fullscreen mode

āϕ⧋āĻĄ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ

  • āχāύāĻĄā§‡āĻ•ā§āϏ āĻšā§‡āĻ•: if (index &lt; 0 || index &gt;= this.length) āĻāχ āĻļāĻ°ā§āϤāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧇ āϝ⧇ āχāύāĻĄā§‡āĻ•ā§āϏ āĻŦ⧈āϧ āĻ•āĻŋāύāĻžāĨ¤ āϝāĻĻāĻŋ āĻ…āĻŦ⧈āϧ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ undefined āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧāĨ¤
  • āύ⧋āĻĄ āĻ–ā§‹āρāϜāĻž: for (let i = 0; i &lt; index; i++) āĻĻā§āĻŦāĻžāϰāĻž āφāĻŽāϰāĻž āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻŽāĻ§ā§āϝ āĻĻāĻŋāϝāĻŧ⧇ āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋ āĻ•āϰāĻŋ āĻāĻŦāĻ‚ temp āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞāϕ⧇ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡ āϏāϰāĻžāχāĨ¤
  • āύ⧋āĻĄ āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž: āĻļ⧇āώ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ, return temp; āĻĻā§āĻŦāĻžāϰāĻž āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āχāύāĻĄā§‡āĻ•ā§āϏ⧇āϰ āύ⧋āĻĄāϟāĻŋ āĻĢ⧇āϰāϤ āĻĻāĻŋāχāĨ¤
let myLinkedList = new LinkedList(0); // ā§Ļ āĻŽāĻžāύ āϏāĻš āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϞāĻŋāĻ™ā§āϕ⧇āĻĄ āϞāĻŋāĻ¸ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻž myLinkedList.unshift(1); // ā§§ āĻŽāĻžāύ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž myLinkedList.unshift(2); // ⧍ āĻŽāĻžāύ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž myLinkedList.unshift(3); // ā§Š āĻŽāĻžāύ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž console.log(myLinkedList.get(-1)); // āĻāϟāĻŋ undefined āĻĢ⧇āϰāϤ āĻĻ⧇āĻŦ⧇ (āĻ…āĻŦ⧈āϧ āχāύāĻĄā§‡āĻ•ā§āϏ) console.log(myLinkedList.get(10)); // āĻāϟāĻŋ undefined āĻĢ⧇āϰāϤ āĻĻ⧇āĻŦ⧇ (āĻ…āĻŦ⧈āϧ āχāύāĻĄā§‡āĻ•ā§āϏ) console.log(myLinkedList.get(2)); // āĻāϟāĻŋ ⧍ āύ⧋āĻĄ āĻĢ⧇āϰāϤ āĻĻ⧇āĻŦ⧇ (āĻŦ⧈āϧ āχāύāĻĄā§‡āĻ•ā§āϏ) 
Enter fullscreen mode Exit fullscreen mode

āĻĢāϞāĻžāĻĢāϞ

  • āĻĒā§āϰāĻĨāĻŽ āϗ⧇āϟ āĻ•āϞ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāϟāĻŋ āĻ…āĻŦ⧈āϧ āχāύāĻĄā§‡āĻ•ā§āϏ (-1) āĻāϰ āϜāĻ¨ā§āϝ undefined āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧāĨ¤
  • āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ āϗ⧇āϟ āĻ•āϞ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāϟāĻŋ āĻ…āĻŦ⧈āϧ āχāύāĻĄā§‡āĻ•ā§āϏ (10) āĻāϰ āϜāĻ¨ā§āϝāĻ“ undefined āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧāĨ¤
  • āϤ⧃āϤ⧀āϝāĻŧ āϗ⧇āϟ āĻ•āϞ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāϟāĻŋ āĻŦ⧈āϧ āχāύāĻĄā§‡āĻ•ā§āϏ (2) āĻāϰ āϜāĻ¨ā§āϝ ⧍ āύ⧋āĻĄā§‡āϰ āĻŽāĻžāύ āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧāĨ¤

āĻāĻŦāĻ‚ āĻāχāĻ­āĻžāĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āϗ⧇āϟ (Get) āĻŽā§‡āĻĨāĻĄ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ⧀ āĻšāϝāĻŧ⧇āϛ⧇!

đŸ”Ĩ10- āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āϏ⧇āϟ (Set) āĻŽā§‡āĻĨāĻĄ <br> 
Enter fullscreen mode Exit fullscreen mode

đŸ”Ĩ10- āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āϏ⧇āϟ (Set) āĻŽā§‡āĻĨāĻĄ

āĻāĻ–āύ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āϏ⧇āϟ (Set) āĻŽā§‡āĻĨāĻĄāϟāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦāĨ¤ āϏ⧇āϟ āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āχāύāĻĄā§‡āĻ•ā§āϏ⧇ āĻĨāĻžāĻ•āĻž āύ⧋āĻĄā§‡āϰ āĻŽāĻžāύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇āĨ¤

āϏ⧇āϟ āĻŽā§‡āĻĨāĻĄā§‡āϰ āĻĒāĻĻāĻ•ā§āώ⧇āĻĒ

  1. āχāύāĻĄā§‡āĻ•ā§āϏ āĻšā§‡āĻ• āĻ•āϰāĻž: āĻĒā§āϰāĻĨāĻŽā§‡ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝ⧇ āχāύāĻĄā§‡āĻ•ā§āϏāϟāĻŋ āĻŦ⧈āϧ āĻ•āĻŋāύāĻžāĨ¤
  2. āύ⧋āĻĄ āĻ–ā§‹āρāϜāĻž: āϝāĻĻāĻŋ āχāύāĻĄā§‡āĻ•ā§āϏ āĻŦ⧈āϧ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻļ⧁āϰ⧁ āĻĨ⧇āϕ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āχāύāĻĄā§‡āĻ•ā§āϏ⧇ āĻĒ⧌āρāĻ›āĻžāϤ⧇ āĻšāĻŦ⧇āĨ¤
  3. āĻŽāĻžāύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž: āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āχāύāĻĄā§‡āĻ•ā§āϏ⧇āϰ āύ⧋āĻĄāϟāĻŋāϰ āĻŽāĻžāύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤
  4. āĻĢāϞāĻžāĻĢāϞ āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž: āϏāĻĢāϞāĻ­āĻžāĻŦ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšāϞ⧇ true āĻĢ⧇āϰāϤ āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇, āĻ…āĻ¨ā§āϝāĻĨāĻžāϝāĻŧ falseāĨ¤

āϕ⧋āĻĄāĻŋāĻ‚ āĻĒāϰāĻŋāĻ•āĻ˛ā§āĻĒāύāĻž

set(index, value) { // ā§§. āχāύāĻĄā§‡āĻ•ā§āϏ āĻšā§‡āĻ• āĻ•āϰāĻž if (index &lt; 0 || index &gt;= this.length) { return false; // āĻ…āĻŦ⧈āϧ āχāύāĻĄā§‡āĻ•ā§āϏ āĻšāϞ⧇ false āĻĢ⧇āϰāϤ āĻĻāĻŋāύ } let temp = this.get(index); // āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āχāύāĻĄā§‡āĻ•ā§āϏ⧇āϰ āύ⧋āĻĄ āĻ–ā§‹āρāϜāĻž // ⧍. āύ⧋āĻĄ āĻĒāĻžāĻ“āϝāĻŧāĻž āϗ⧇āϞ⧇ āĻŽāĻžāύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž if (temp) { temp.value = value; // āύ⧋āĻĄā§‡āϰ āĻŽāĻžāύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž return true; // āϏāĻĢāϞāĻ­āĻžāĻŦ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšāϞ⧇ true āĻĢ⧇āϰāϤ āĻĻāĻŋāύ } return false; // āύ⧋āĻĄ āύāĻž āĻĒāĻžāĻ“āϝāĻŧāĻž āϗ⧇āϞ⧇ false āĻĢ⧇āϰāϤ āĻĻāĻŋāύ } 
Enter fullscreen mode Exit fullscreen mode

āϕ⧋āĻĄ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ

  • āχāύāĻĄā§‡āĻ•ā§āϏ āĻšā§‡āĻ•: if (index &lt; 0 || index &gt;= this.length) āĻāχ āĻļāĻ°ā§āϤāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧇ āϝ⧇ āχāύāĻĄā§‡āĻ•ā§āϏ āĻŦ⧈āϧ āĻ•āĻŋāύāĻžāĨ¤ āϝāĻĻāĻŋ āĻ…āĻŦ⧈āϧ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ false āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧāĨ¤
  • āύ⧋āĻĄ āĻ–ā§‹āρāϜāĻž: let temp = this.get(index); āĻĻā§āĻŦāĻžāϰāĻž āφāĻŽāϰāĻž āϗ⧇āϟ āĻŽā§‡āĻĨāĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āχāύāĻĄā§‡āĻ•ā§āϏ⧇āϰ āύ⧋āĻĄāϟāĻŋ āϖ⧁āρāĻœā§‡ āĻŦ⧇āϰ āĻ•āϰāĻŋāĨ¤
  • āĻŽāĻžāύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ: if (temp) āĻĻā§āĻŦāĻžāϰāĻž āύāĻŋāĻļā§āϚāĻŋāϤ āĻšāχ āϝ⧇ āύ⧋āĻĄāϟāĻŋ āĻĒāĻžāĻ“āϝāĻŧāĻž āϗ⧇āϛ⧇ āĻāĻŦāĻ‚ āϤāĻžāϰāĻĒāϰ temp.value = value; āĻĻā§āĻŦāĻžāϰāĻž āĻŽāĻžāύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻŋāĨ¤
  • āĻĢāϞāĻžāĻĢāϞ āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž: āϏāĻĢāϞāĻ­āĻžāĻŦ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšāϞ⧇ true āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻĨāĻžāϝāĻŧ false āĻĢ⧇āϰāϤ āĻĻāĻŋāχāĨ¤

āĻĄā§‡āĻ­āϟ⧁āϞāϏ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž

āĻāĻ–āύ āφāϏ⧁āύ āĻĄā§‡āĻ­āϟ⧁āϞāϏ⧇ āϕ⧋āĻĄāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻŋ:

let myLinkedList = new LinkedList(3); // ā§Š āĻŽāĻžāύ āϏāĻš āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϞāĻŋāĻ™ā§āϕ⧇āĻĄ āϞāĻŋāĻ¸ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻž myLinkedList.unshift(2); // ⧍ āĻŽāĻžāύ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž myLinkedList.unshift(1); // ā§§ āĻŽāĻžāύ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž console.log(myLinkedList.set(1, 4)); // āĻāϟāĻŋ true āĻĢ⧇āϰāϤ āĻĻ⧇āĻŦ⧇ āĻāĻŦāĻ‚ ⧍ āύ⧋āĻĄā§‡āϰ āĻŽāĻžāύāϕ⧇ ā§Ē āĻ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻŦ⧇ console.log(myLinkedList.get(1)); // āĻāϟāĻŋ āĻāĻ–āύ ā§Ē āĻĢ⧇āϰāϤ āĻĻ⧇āĻŦ⧇ 
Enter fullscreen mode Exit fullscreen mode

āĻĢāϞāĻžāĻĢāϞ

  • āĻĒā§āϰāĻĨāĻŽ āϏ⧇āϟ āĻ•āϞ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāϟāĻŋ āϏāĻĢāϞāĻ­āĻžāĻŦ⧇ ⧍ āύ⧋āĻĄā§‡āϰ āĻŽāĻžāύāϕ⧇ ā§Ē āĻ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇ āĻāĻŦāĻ‚ true āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧāĨ¤
  • āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ āϗ⧇āϟ āĻ•āϞ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāϟāĻŋ āύāϤ⧁āύ āĻŽāĻžāύ (ā§Ē) āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧāĨ¤

āĻāĻŦāĻ‚ āĻāχāĻ­āĻžāĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āϏ⧇āϟ (Set) āĻŽā§‡āĻĨāĻĄ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ⧀ āĻšāϝāĻŧ⧇āϛ⧇!

đŸ”Ĩ11 -āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āχāύāϏāĻžāĻ°ā§āϟ (Insert) āĻŽā§‡āĻĨāĻĄ <br> 
Enter fullscreen mode Exit fullscreen mode

đŸ”Ĩ11 āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āχāύāϏāĻžāĻ°ā§āϟ (Insert) āĻŽā§‡āĻĨāĻĄ

Insert Node at any position

āĻāĻ–āύ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āχāύāϏāĻžāĻ°ā§āϟ (Insert) āĻŽā§‡āĻĨāĻĄāϟāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦāĨ¤ āχāύāϏāĻžāĻ°ā§āϟ āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āύ⧋āĻĄāϕ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āχāύāĻĄā§‡āĻ•ā§āϏ⧇ āϝ⧁āĻ•ā§āϤ āĻ•āϰ⧇āĨ¤

āχāύāϏāĻžāĻ°ā§āϟ āĻŽā§‡āĻĨāĻĄā§‡āϰ āĻĒāĻĻāĻ•ā§āώ⧇āĻĒ

  1. āχāύāĻĄā§‡āĻ•ā§āϏ āĻšā§‡āĻ• āĻ•āϰāĻž: āĻĒā§āϰāĻĨāĻŽā§‡ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝ⧇ āχāύāĻĄā§‡āĻ•ā§āϏāϟāĻŋ āĻŦ⧈āϧ āĻ•āĻŋāύāĻžāĨ¤
  2. āύāϤ⧁āύ āύ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāĻž: āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āύ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤
  3. āύ⧋āĻĄ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž:
    • āϝāĻĻāĻŋ āχāύāĻĄā§‡āĻ•ā§āϏ ā§Ļ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ unshift āĻŽā§‡āĻĨāĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āύāϤ⧁āύ āύ⧋āĻĄ āϝ⧁āĻ•ā§āϤ āĻ•āϰ⧁āύāĨ¤
    • āϝāĻĻāĻŋ āχāύāĻĄā§‡āĻ•ā§āϏ āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ⧇āϰ āϏāĻŽāĻžāύ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ push āĻŽā§‡āĻĨāĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āύāϤ⧁āύ āύ⧋āĻĄ āϝ⧁āĻ•ā§āϤ āĻ•āϰ⧁āύāĨ¤
    • āϝāĻĻāĻŋ āχāύāĻĄā§‡āĻ•ā§āϏ āĻŦ⧈āϧ āĻšāϝāĻŧ āĻāĻŦāĻ‚ āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻŽāĻžāĻāĻ–āĻžāύ⧇ āϝ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡āϰ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰ āφāĻĒāĻĄā§‡āϟ āĻ•āϰ⧁āύāĨ¤

āϕ⧋āĻĄāĻŋāĻ‚ āĻĒāϰāĻŋāĻ•āĻ˛ā§āĻĒāύāĻž

insert(index, value) { // ā§§. āχāύāĻĄā§‡āĻ•ā§āϏ āĻšā§‡āĻ• āĻ•āϰāĻž if (index &lt; 0 || index &gt; this.length) { return false; // āĻ…āĻŦ⧈āϧ āχāύāĻĄā§‡āĻ•ā§āϏ āĻšāϞ⧇ false āĻĢ⧇āϰāϤ āĻĻāĻŋāύ } const newNode = new Node(value); // āύāϤ⧁āύ āύ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāĻž // ⧍. āϝāĻĻāĻŋ āχāύāĻĄā§‡āĻ•ā§āϏ ā§Ļ āĻšāϝāĻŧ if (index === 0) { return this.unshift(value); // unshift āĻŽā§‡āĻĨāĻĄ āĻ•āϞ āĻ•āϰāĻž } // ā§Š. āϝāĻĻāĻŋ āχāύāĻĄā§‡āĻ•ā§āϏ āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ⧇āϰ āϏāĻŽāĻžāύ āĻšāϝāĻŧ if (index === this.length) { return this.push(value); // push āĻŽā§‡āĻĨāĻĄ āĻ•āϞ āĻ•āϰāĻž } // ā§Ē. āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻŽāĻžāĻāĻ–āĻžāύ⧇ āχāύāϏāĻžāĻ°ā§āϟ āĻ•āϰāĻž let temp = this.get(index - 1); // āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄ āĻ–ā§‹āρāϜāĻž newNode.next = temp.next; // āύāϤ⧁āύ āύ⧋āĻĄā§‡āϰ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž temp.next = newNode; // āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡āϰ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰāϕ⧇ āύāϤ⧁āύ āύ⧋āĻĄā§‡ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻž this.length++; // āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻŦāĻžāĻĄāĻŧāĻžāύ⧋ return true; // āϏāĻĢāϞāĻ­āĻžāĻŦ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšāϞ⧇ true āĻĢ⧇āϰāϤ āĻĻāĻŋāύ } 
Enter fullscreen mode Exit fullscreen mode

āϕ⧋āĻĄ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ

  • āχāύāĻĄā§‡āĻ•ā§āϏ āĻšā§‡āĻ•: if (index &lt; 0 || index &gt; this.length) āĻāχ āĻļāĻ°ā§āϤāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧇ āϝ⧇ āχāĻ¨Úˆā§‡āĻ•ā§āϏ āĻŦ⧈āϧ āĻ•āĻŋāύāĻžāĨ¤ āϝāĻĻāĻŋ āĻ…āĻŦ⧈āϧ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ false āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧāĨ¤
  • āύāϤ⧁āύ āύ⧋āĻĄ āϤ⧈āϰāĻŋ: const newNode = new Node(value); āĻĻā§āĻŦāĻžāϰāĻž āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āύ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāĻŋāĨ¤
  • āχāύāϏāĻžāĻ°ā§āϟ āĻ…āĻĒāĻžāϰ⧇āĻļāύ:
    • āϝāĻĻāĻŋ āχāύāĻĄā§‡āĻ•ā§āϏ ā§Ļ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ unshift āĻŽā§‡āĻĨāĻĄ āĻ•āϞ āĻ•āϰāĻŋāĨ¤
    • āϝāĻĻāĻŋ āχāĻ¨Úˆā§‡āĻ•ā§āϏ āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ⧇āϰ āϏāĻŽāĻžāύ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ push āĻŽā§‡āĻĨāĻĄ āĻ•āϞ āĻ•āϰāĻŋāĨ¤
    • āĻ…āĻ¨ā§āϝāĻĨāĻžāϝāĻŧ, āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄ āϖ⧁āρāĻœā§‡ āĻŦ⧇āϰ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āύāϤ⧁āύ āύ⧋āĻĄ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻŋāĨ¤
  • āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻŦāĻžāĻĄāĻŧāĻžāύ⧋: this.length++ āĻĻā§āĻŦāĻžāϰāĻž āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻŦāĻžāĻĄāĻŧāĻžāχāĨ¤
let myLinkedList = new LinkedList(0); // ā§Ļ āĻŽāĻžāύ āϏāĻš āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϞāĻŋāĻ™ā§āϕ⧇āĻĄ āϞāĻŋāĻ¸ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻž myLinkedList.push(2); // ⧍ āĻŽāĻžāύ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž console.log(myLinkedList.insert(1, 1)); // āĻāϟāĻŋ true āĻĢ⧇āϰāϤ āĻĻ⧇āĻŦ⧇ āĻāĻŦāĻ‚ ā§§ āύ⧋āĻĄāϕ⧇ āχāύāϏāĻžāĻ°ā§āϟ āĻ•āϰāĻŦ⧇ console.log(myLinkedList); // āĻāĻ–āύ āϤāĻžāϞāĻŋāĻ•āĻžāϝāĻŧ ā§Ļ -&gt; ā§§ -&gt; ⧍ āĻĨāĻžāĻ•āĻŦ⧇ 
Enter fullscreen mode Exit fullscreen mode

āĻĢāϞāĻžāĻĢāϞ

  • āĻĒā§āϰāĻĨāĻŽ āχāύāϏāĻžāĻ°ā§āϟ āĻ•āϞ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāϟāĻŋ āϏāĻĢāϞāĻ­āĻžāĻŦ⧇ ā§§ āύ⧋āĻĄāϕ⧇ āχāύāϏāĻžāĻ°ā§āϟ āĻ•āϰ⧇ āĻāĻŦāĻ‚ true āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧāĨ¤
  • āϤāĻžāϞāĻŋāĻ•āĻž āĻāĻ–āύ ā§Ļ -> ā§§ -> ⧍ āϰ⧂āĻĒ⧇ āĻĨāĻžāĻ•āĻŦ⧇āĨ¤

āĻāĻŦāĻ‚ āĻāχāĻ­āĻžāĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āχāύāϏāĻžāĻ°ā§āϟ (Insert) āĻŽā§‡āĻĨāĻĄ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ⧀ āĻšāϝāĻŧ⧇āϛ⧇!

đŸ”Ĩ12-āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āϰāĻŋāĻŽā§āĻ­ (Remove) āĻŽā§‡āĻĨāĻĄ <br> 
Enter fullscreen mode Exit fullscreen mode

đŸ”Ĩ12-āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āϰāĻŋāĻŽā§āĻ­ (Remove) āĻŽā§‡āĻĨāĻĄ

āĻāĻ–āύ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āϰāĻŋāĻŽā§āĻ­ (Remove) āĻŽā§‡āĻĨāĻĄāϟāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦāĨ¤ āϰāĻŋāĻŽā§āĻ­ āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āχāύāĻĄā§‡āĻ•ā§āϏ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āφāχāĻŸā§‡āĻŽ āϏāϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āϝāĻŧāĨ¤

āϰāĻŋāĻŽā§āĻ­ āĻŽā§‡āĻĨāĻĄā§‡āϰ āĻĒāĻĻāĻ•ā§āώ⧇āĻĒ

  1. āχāύāĻĄā§‡āĻ•ā§āϏ āĻšā§‡āĻ• āĻ•āϰāĻž: āĻĒā§āϰāĻĨāĻŽā§‡ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝ⧇ āχāύāĻĄā§‡āĻ•ā§āϏāϟāĻŋ āĻŦ⧈āϧ āĻ•āĻŋāύāĻžāĨ¤
  2. āĻĒā§āϰāĻĨāĻŽ āφāχāĻŸā§‡āĻŽ āϏāϰāĻžāύ⧋: āϝāĻĻāĻŋ āχāύāĻĄā§‡āĻ•ā§āϏ ā§Ļ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ shift āĻŽā§‡āĻĨāĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāχāĻŸā§‡āĻŽ āϏāϰāĻžāύāĨ¤
  3. āĻļ⧇āώ āφāχāĻŸā§‡āĻŽ āϏāϰāĻžāύ⧋: āϝāĻĻāĻŋ āχāύāĻĄā§‡āĻ•ā§āϏ āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ⧇āϰ āϏāĻŽāĻžāύ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ pop āĻŽā§‡āĻĨāĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāχāĻŸā§‡āĻŽ āϏāϰāĻžāύāĨ¤
  4. āĻŽāĻžāĻā§‡ āφāχāĻŸā§‡āĻŽ āϏāϰāĻžāύ⧋: āϝāĻĻāĻŋ āχāύāĻĄā§‡āĻ•ā§āϏ āĻŦ⧈āϧ āĻšāϝāĻŧ āĻāĻŦāĻ‚ āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻŽāĻžāĻāĻ–āĻžāύ⧇ āφāχāĻŸā§‡āĻŽ āϏāϰāĻžāϤ⧇ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡āϰ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰ āφāĻĒāĻĄā§‡āϟ āĻ•āϰ⧁āύāĨ¤

āϕ⧋āĻĄāĻŋāĻ‚ āĻĒāϰāĻŋāĻ•āĻ˛ā§āĻĒāύāĻž

remove(index) { // ā§§. āχāύāĻĄā§‡āĻ•ā§āϏ āĻšā§‡āĻ• āĻ•āϰāĻž if (index &lt; 0 || index &gt;= this.length) { return undefined; // āĻ…āĻŦ⧈āϧ āχāύāĻĄā§‡āĻ•ā§āϏ āĻšāϞ⧇ undefined āĻĢ⧇āϰāϤ āĻĻāĻŋāύ } // ⧍. āĻĒā§āϰāĻĨāĻŽ āφāχāĻŸā§‡āĻŽ āϏāϰāĻžāύ⧋ if (index === 0) { return this.shift(); // shift āĻŽā§‡āĻĨāĻĄ āĻ•āϞ āĻ•āϰāĻž } // ā§Š. āĻļ⧇āώ āφāχāĻŸā§‡āĻŽ āϏāϰāĻžāύ⧋ if (index === this.length - 1) { return this.pop(); // pop āĻŽā§‡āĻĨāĻĄ āĻ•āϞ āĻ•āϰāĻž } // ā§Ē. āĻŽāĻžāĻāĻ–āĻžāύ⧇ āφāχāĻŸā§‡āĻŽ āϏāϰāĻžāύ⧋ let before = this.get(index - 1); // āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄ āĻ–ā§‹āρāϜāĻž let temp = before.next; // āĻ…āĻĒāϏāĻžāϰāĻŋāϤ āύ⧋āĻĄāϟāĻŋ āĻ–ā§‹āρāϜāĻž before.next = temp.next; // āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡āϰ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž temp.next = null; // āĻ…āĻĒāϏāĻžāϰāĻŋāϤ āύ⧋āĻĄā§‡āϰ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰāϕ⧇ null āϏ⧇āϟ āĻ•āϰāĻž this.length--; // āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻ•āĻŽāĻžāύ⧋ return temp; // āĻ…āĻĒāϏāĻžāϰāĻŋāϤ āύ⧋āĻĄ āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž } 
Enter fullscreen mode Exit fullscreen mode

āϕ⧋āĻĄ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ

  • āχāύāĻĄā§‡āĻ•ā§āϏ āĻšā§‡āĻ•: if (index &lt; 0 || index &gt;= this.length) āĻāχ āĻļāĻ°ā§āϤāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧇ āϝ⧇ āχāύāĻĄā§‡āĻ•ā§āϏ āĻŦ⧈āϧ āĻ•āĻŋāύāĻžāĨ¤ āϝāĻĻāĻŋ āĻ…āĻŦ⧈āϧ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ undefined āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧāĨ¤
  • āĻĒā§āϰāĻĨāĻŽ āφāχāĻŸā§‡āĻŽ āϏāϰāĻžāύ⧋: if (index === 0) āĻĻā§āĻŦāĻžāϰāĻž āύāĻŋāĻļā§āϚāĻŋāϤ āĻšāχ āϝ⧇ āĻāϟāĻŋ āĻĒā§āϰāĻĨāĻŽ āφāχāĻŸā§‡āĻŽ āĻāĻŦāĻ‚ shift āĻŽā§‡āĻĨāĻĄ āĻ•āϞ āĻ•āϰāĻŋāĨ¤
  • āĻļ⧇āώ āφāχāĻŸā§‡āĻŽ āϏāϰāĻžāύ⧋: if (index === this.length - 1) āĻĻā§āĻŦāĻžāϰāĻž āύāĻŋāĻļā§āϚāĻŋāϤ āĻšāχ āϝ⧇ āĻāϟāĻŋ āĻļ⧇āώ āφāχāĻŸā§‡āĻŽ āĻāĻŦāĻ‚ pop āĻŽā§‡āĻĨāĻĄ āĻ•āϞ āĻ•āϰāĻŋāĨ¤
  • āĻŽāĻžāĻāĻ–āĻžāύ⧇ āφāχāĻŸā§‡āĻŽ āϏāϰāĻžāύ⧋: āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄ āϖ⧁āρāĻœā§‡ āĻŦ⧇āϰ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āύāϤ⧁āύ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰ āϏ⧇āϟ āĻ•āϰāĻŋāĨ¤
  • āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻ•āĻŽāĻžāύ⧋: this.length-- āĻĻā§āĻŦāĻžāϰāĻž āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻ•āĻŽāĻžāχāĨ¤

āĻāĻ–āύ āφāϏ⧁āύ āĻĄā§‡āĻ­āϟ⧁āϞāϏ⧇ āϕ⧋āĻĄāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻŋ:

let myLinkedList = new LinkedList(11); // ā§§ā§§ āĻŽāĻžāύ āϏāĻš āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϞāĻŋāĻ™ā§āϕ⧇āĻĄ āϞāĻŋāĻ¸ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻž myLinkedList.push(23); // ā§¨ā§Š āĻŽāĻžāύ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž myLinkedList.push(7); // ā§­ āĻŽāĻžāύ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž console.log(myLinkedList.remove(1)); // āĻāϟāĻŋ ā§¨ā§Š āύ⧋āĻĄ āĻĢ⧇āϰāϤ āĻĻ⧇āĻŦ⧇ āĻāĻŦāĻ‚ āϤāĻžāϞāĻŋāĻ•āĻž āĻĨ⧇āϕ⧇ āϏāϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āĻŦ⧇ console.log(myLinkedList); // āĻāĻ–āύ āϤāĻžāϞāĻŋāĻ•āĻžāϝāĻŧ ā§§ā§§ -&gt; ā§­ āĻĨāĻžāĻ•āĻŦ⧇, āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻšāĻŦ⧇ 2 
Enter fullscreen mode Exit fullscreen mode

āĻĢāϞāĻžāĻĢāϞ

  • āĻĒā§āϰāĻĨāĻŽ āϰāĻŋāĻŽā§āĻ­ āĻ•āϞ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāϟāĻŋ āϏāĻĢāϞāĻ­āĻžāĻŦ⧇ ā§¨ā§Š āύ⧋āĻĄāϕ⧇ āϏāϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āϝāĻŧ āĻāĻŦāĻ‚ āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧāĨ¤
  • āϤāĻžāϞāĻŋāĻ•āĻž āĻāĻ–āύ ā§§ā§§ -> ā§­ āϰ⧂āĻĒ⧇ āĻĨāĻžāĻ•āĻŦ⧇ āĻāĻŦāĻ‚ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āĻšāĻŦ⧇ ⧍āĨ¤

āĻāĻŦāĻ‚ āĻāχāĻ­āĻžāĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āϰāĻŋāĻŽā§āĻ­ (Remove) āĻŽā§‡āĻĨāĻĄ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ⧀ āĻšāϝāĻŧ⧇āϛ⧇!

đŸ”Ĩ13-Reverse Linked List <br> 
Enter fullscreen mode Exit fullscreen mode

đŸ”Ĩ13-āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āϰāĻŋāĻ­āĻžāĻ°ā§āϏ (Reverse) āĻŽā§‡āĻĨāĻĄ

āĻāĻ–āύ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āϰāĻŋāĻ­āĻžāĻ°ā§āϏ (Reverse) āĻŽā§‡āĻĨāĻĄāϟāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦāĨ¤ āϰāĻŋāĻ­āĻžāĻ°ā§āϏ āĻŽā§‡āĻĨāĻĄāϟāĻŋ āĻāĻ•āϟāĻŋ āϞāĻŋāĻ™ā§āĻ•āĻĄ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āύ⧋āĻĄāϗ⧁āϞāĻŋāϕ⧇ āωāĻ˛ā§āĻŸā§‡ āĻĻ⧇āϝāĻŧāĨ¤

āϰāĻŋāĻ­āĻžāĻ°ā§āϏ āĻŽā§‡āĻĨāĻĄā§‡āϰ āĻĒāĻĻāĻ•ā§āώ⧇āĻĒ

  1. āĻšā§‡āĻĄ āĻāĻŦāĻ‚ āĻŸā§‡āχāϞ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ: āĻĒā§āϰāĻĨāĻŽā§‡ āĻšā§‡āĻĄ āĻāĻŦāĻ‚ āĻŸā§‡āχāϞāϕ⧇ āĻāϕ⧇ āĻ…āĻĒāϰ⧇āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤
  2. āύ⧋āĻĄāϗ⧁āϞāĻŋāϰ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ: āĻĒā§āϰāϤāĻŋāϟāĻŋ āύ⧋āĻĄā§‡āϰ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰāϕ⧇ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤
  3. āĻĢāϞāĻžāĻĢāϞ āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž: āĻĒ⧁āϰ⧋ āωāĻ˛ā§āϟāĻžāύ⧋ āϤāĻžāϞāĻŋāĻ•āĻž āĻĢ⧇āϰāϤ āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇āĨ¤

āϕ⧋āĻĄāĻŋāĻ‚ āĻĒāϰāĻŋāĻ•āĻ˛ā§āĻĒāύāĻž

reverse() { // ā§§. āĻšā§‡āĻĄ āĻāĻŦāĻ‚ āĻŸā§‡āχāϞ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž let temp = this.head; // āĻŸā§‡āĻŽā§āĻĒ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ āĻšā§‡āĻĄāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ this.head = this.tail; // āĻšā§‡āĻĄāϕ⧇ āĻŸā§‡āχāϞ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻž this.tail = temp; // āĻŸā§‡āχāϞāϕ⧇ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āĻšā§‡āĻĄā§‡ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻž let next = null; // āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡āϰ āϜāĻ¨ā§āϝ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ let previous = null; // āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡āϰ āϜāĻ¨ā§āϝ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ // ⧍. āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻŽāĻ§ā§āϝ āĻĻāĻŋāϝāĻŧ⧇ āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋ āĻ•āϰāĻž while (temp) { next = temp.next; // āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻž temp.next = previous; // āĻŦāĻ°ā§āϤāĻŽāĻžāύ āύ⧋āĻĄā§‡āϰ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž previous = temp; // āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž temp = next; // āĻŸā§‡āĻŽā§āĻĒāϕ⧇ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡ āϏāϰāĻžāύ⧋ } // ā§Š. āĻĢāϞāĻžāĻĢāϞ āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž return this; // āĻĒ⧁āϰ⧋ āωāĻ˛ā§āϟāĻžāύ⧋ āϤāĻžāϞāĻŋāĻ•āĻž āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž } 
Enter fullscreen mode Exit fullscreen mode

āϕ⧋āĻĄ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ

  • āĻšā§‡āĻĄ āĻāĻŦāĻ‚ āĻŸā§‡āχāϞ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ: āĻĒā§āϰāĻĨāĻŽā§‡ let temp = this.head; āĻĻā§āĻŦāĻžāϰāĻž āĻŸā§‡āĻŽā§āĻĒ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ āϤ⧈āϰāĻŋ āĻ•āϰāĻŋāĨ¤ āϤāĻžāϰāĻĒāϰ this.head = this.tail; āĻāĻŦāĻ‚ this.tail = temp; āĻĻā§āĻŦāĻžāϰāĻž āĻšā§‡āĻĄ āĻāĻŦāĻ‚ āĻŸā§‡āχāϞāϕ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻŋāĨ¤
  • āĻĒ⧁āύāϰāĻžāĻŦ⧃āĻ¤ā§āϤāĻŋ: while (temp) āĻĻā§āĻŦāĻžāϰāĻž āφāĻŽāϰāĻž āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻĒā§āϰāϤāĻŋāϟāĻŋ āύ⧋āĻĄā§‡āϰ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻŋāĨ¤
    • next = temp.next; āĻĻā§āĻŦāĻžāϰāĻž āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻŋāĨ¤
    • temp.next = previous; āĻĻā§āĻŦāĻžāϰāĻž āĻŦāĻ°ā§āϤāĻŽāĻžāύ āύ⧋āĻĄā§‡āϰ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻŋāĨ¤
    • previous = temp; āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻŋāĨ¤
    • temp = next; āĻĻā§āĻŦāĻžāϰāĻž āĻŸā§‡āĻŽā§āĻĒāϕ⧇ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āύ⧋āĻĄā§‡ āϏāϰāĻžāχāĨ¤
  • āĻĢāϞāĻžāĻĢāϞ āĻĢ⧇āϰāϤ āĻĻ⧇āĻ“āϝāĻŧāĻž: āĻļ⧇āώ⧇, return this; āĻĻā§āĻŦāĻžāϰāĻž āĻĒ⧁āϰ⧋ āωāĻ˛ā§āϟāĻžāύ⧋ āϤāĻžāϞāĻŋāĻ•āĻž āĻĢ⧇āϰāϤ āĻĻāĻŋāχāĨ¤
let myLinkedList = new LinkedList(1); // ā§§ āĻŽāĻžāύ āϏāĻš āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āϞāĻŋāĻ™ā§āϕ⧇āĻĄ āϞāĻŋāĻ¸ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻž myLinkedList.push(2); // ⧍ āĻŽāĻžāύ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž myLinkedList.push(3); // ā§Š āĻŽāĻžāύ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž console.log(myLinkedList.reverse()); // āĻāϟāĻŋ āωāĻ˛ā§āϟāĻžāύ⧋ āϤāĻžāϞāĻŋāĻ•āĻž āĻĢ⧇āϰāϤ āĻĻ⧇āĻŦ⧇ 
Enter fullscreen mode Exit fullscreen mode

āĻĢāϞāĻžāĻĢāϞ

  • āϰāĻŋāĻ­āĻžāĻ°ā§āϏ āĻ•āϞ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āϤāĻžāϞāĻŋāĻ•āĻž āĻāĻ–āύ ā§Š -> ⧍ -> ā§§ āϰ⧂āĻĒ⧇ āĻĨāĻžāĻ•āĻŦ⧇, āϝ⧇āĻ–āĻžāύ⧇ āĻšā§‡āĻĄ āĻāĻ–āύ ā§Š āĻāĻŦāĻ‚ āĻŸā§‡āχāϞ ā§§āĨ¤

āĻāĻŦāĻ‚ āĻāχāĻ­āĻžāĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āϰāĻŋāĻ­āĻžāĻ°ā§āϏ (Reverse) āĻŽā§‡āĻĨāĻĄ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ⧀ āĻšāϝāĻŧ⧇āϛ⧇!

Full Code

class Node { constructor(value){ this.value = value; this.next = null; } } class LinkedList { constructor(value) { const newNode = new Node(value); this.head = newNode; this.tail = this.head; this.length = 1; } printList() { let temp = this.head; while (temp !== null) { console.log(temp.value); temp = temp.next; } } getHead() { if (this.head === null) { console.log("Head: null"); } else { console.log("Head: " + this.head.value); } } getTail() { if (this.tail === null) { console.log("Tail: null"); } else { console.log("Tail: " + this.tail.value); } } getLength() { console.log("Length: " + this.length); } makeEmpty() { this.head = null; this.tail = null; this.length = 0; } push(value) { const newNode = new Node(value); if (!this.head) { this.head = newNode; this.tail = newNode; } else { this.tail.next = newNode; this.tail = newNode; } this.length++; return this; } pop() { if (this.length === 0) return undefined; let temp = this.head; let pre = this.head; while (temp.next) { pre = temp; temp = temp.next; } this.tail = pre; this.tail.next = null; this.length--; if (this.length === 0) { this.head = null; this.tail = null; } return temp; } unshift(value) { const newNode = new Node(value); if (!this.head) { this.head = newNode; this.tail = newNode; } else { newNode.next = this.head; this.head = newNode; } this.length++; return this; } shift() { if (this.length === 0) return undefined; let temp = this.head; this.head = this.head.next; this.length--; if (this.length === 0) { this.tail = null; } temp.next = null; return temp; } get(index) { if (index < 0 || index >= this.length) return undefined; let temp = this.head; for (let i = 0; i < index; i++) { temp = temp.next; } return temp; } set(index, value) { let temp = this.get(index); if (temp) { temp.value = value; return true; } return false; } insert(index, value) { if (index < 0 || index > this.length) return false; if (index === this.length) return this.push(value); if (index === 0) return this.unshift(value); const newNode = new Node(value); const temp = this.get(index - 1); newNode.next = temp.next; temp.next = newNode; this.length++; return true; } remove(index) { if (index < 0 || index >= this.length) return undefined; if (index === 0) return this.shift(); if (index === this.length - 1) return this.pop(); const before = this.get(index - 1); const temp = before.next; before.next = temp.next; temp.next = null; this.length--; return temp; } reverse() { let temp = this.head; this.head = this.tail; this.tail = temp; let next = temp.next; let prev = null; for (let i = 0; i < this.length; i++) { next = temp.next; temp.next = prev; prev = temp; temp = next; } } } function test() { let myLinkedList = new LinkedList(1); myLinkedList.push(2); myLinkedList.push(3); myLinkedList.push(4); console.log("LL before reverse():"); myLinkedList.printList(); myLinkedList.reverse(); console.log("\nLL after reverse():"); myLinkedList.printList(); } test(); 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)