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)