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

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤ī¸ or a friendly comment on this post if you found it helpful!

Okay