LinkedList in JavaScript
bappasaha
Posted on October 5, 2024
đĨ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>
đĨ01- Linked List āĻāĻŦāĻ Array
āĻāĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĄā§āĻāĻž āĻ¸ā§āĻā§āĻ°āĻžāĻāĻāĻžāĻ° āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻ¯āĻžāĻā§āĻāĻŋ, āĻ¯āĻž āĻāĻŋāĻā§āĻāĻž important. āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻāĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻāĻ¯āĻŧ āĻāĻ°āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻŋ āĻāĻāĻŋ āĻ¸ā§āĻ āĻĄā§āĻāĻž āĻ¸ā§āĻā§āĻ°āĻžāĻāĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻŦ āĻ¯āĻž āĻāĻāĻŋ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻŦā§āĻļāĻŋ āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻŦāĻ āĻ¤āĻž āĻšāĻ˛ āĻ ā§āĻ¯āĻžāĻ°ā§āĨ¤
āĻ ā§āĻ¯āĻžāĻ°ā§āĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯
- index: āĻ ā§āĻ¯āĻžāĻ°ā§āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ index āĻĨāĻžāĻā§, āĻ¯āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§ āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻāĻ°ā§āĨ¤
- āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨: āĻ ā§āĻ¯āĻžāĻ°ā§ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻāĻāĻžāĻŦā§ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯
- index: āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻā§āĻ¨āĻ āĻ¸ā§āĻāĻ āĻ¨ā§āĻāĨ¤
- āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨: āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ¯ā§āĻā§āĻ¨ā§ āĻāĻžāĻ¯āĻŧāĻāĻžāĻ¯āĻŧ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻ āĻ¨āĻ¯āĻŧāĨ¤
āĻā§āĻ°āĻžāĻĢāĻŋāĻāĻžāĻ˛ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨
āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ¯āĻžāĻ˛āĻāĻžāĻŦā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž āĻ¸āĻŦā§āĻ āĻŦāĻ°ā§āĻāĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻŦā§āĻā§āĻ¨āĻŋ āĻŦā§āĻ¤ā§āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦāĨ¤
đ đ đ
- Head and Tail: āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§ āĻāĻāĻāĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻĨāĻžāĻā§ āĻ¯āĻžāĻā§ "āĻšā§āĻĄ" āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻĒā§āĻ°āĻĨāĻŽ āĻāĻāĻā§āĻŽāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§, āĻāĻŦāĻ āĻāĻāĻāĻŋ "āĻā§āĻāĻ˛" āĻĨāĻžāĻā§, āĻ¯āĻž āĻļā§āĻˇ āĻāĻāĻā§āĻŽāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§āĨ¤
-
āĻ˛āĻŋāĻā§āĻ: āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻāĻā§āĻŽ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻā§āĻŽā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§, āĻāĻŦāĻ āĻļā§āĻˇ āĻāĻāĻā§āĻŽāĻāĻŋ
null
āĻāĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§āĨ¤ āĻ¤āĻžāĻ āĻāĻĒāĻ¨āĻŋ "null terminated list" āĻļāĻŦā§āĻĻāĻāĻŋ āĻļā§āĻ¨āĻ¤ā§ āĻĒāĻžāĻŦā§āĻ¨āĨ¤
āĻ¸āĻžāĻ°āĻ¸āĻāĻā§āĻˇā§āĻĒ
āĻ ā§āĻ¯āĻžāĻ°ā§āĻā§āĻ˛āĻŋ āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻāĻāĻžāĻŦā§ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻāĻā§āĻ˛āĻŋ āĻ¯ā§āĻā§āĻ¨ā§ āĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ āĻ¤ā§āĻ˛āĻ¨āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻŽāĻ°āĻž āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻ āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻŽā§āĻ˛āĻŋāĻ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻŦā§āĻāĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
đĨ02- āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻ āĻāĻŦāĻ āĻŦāĻŋāĻ āĻ (Big O)
<br>
đĨ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)
class LinkedList {
constructor(value) {
this.head = { value: value, next: null }; // āĻšā§āĻĄ āĻ¨ā§āĻĄ āĻļā§āĻ°ā§ āĻāĻ°āĻž
this.length = 1; // āĻĻā§āĻ°ā§āĻā§āĻ¯ āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻ°āĻž
}
push(value) {
// āĻļā§āĻˇā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄ āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻŽā§āĻĨāĻĄ
}
unshift(value) {
// āĻļā§āĻ°ā§āĻ¤ā§ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄ āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻŽā§āĻĨāĻĄ
}
insertAt(index, value) {
// āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸ā§āĻāĻā§ āĻāĻāĻāĻŋ āĻ¨ā§āĻĄ āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§āĻļ āĻāĻ°āĻžāĻ° āĻŽā§āĻĨāĻĄ
}
remove(index) {
// āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸ā§āĻāĻ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻ¨ā§āĻĄ āĻ
āĻĒāĻ¸āĻžāĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻŽā§āĻĨāĻĄ
}
pop() {
// āĻļā§āĻˇ āĻ¨ā§āĻĄ āĻ
āĻĒāĻ¸āĻžāĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻŽā§āĻĨāĻĄ
}
shift() {
// āĻĒā§āĻ°āĻĨāĻŽ āĻ¨ā§āĻĄ āĻ
āĻĒāĻ¸āĻžāĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻŽā§āĻĨāĻĄ
}
}
đĨ03- āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻ
āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻāĻ āĻ¨
<br>
đĨ03- āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° Internal Structure
āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻāĻ āĻ¨ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻŦāĨ¤ āĻāĻ¸ā§āĻ¨ āĻĻā§āĻāĻŋ āĻāĻāĻŋ āĻāĻ¸āĻ˛ā§ āĻā§āĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻšāĻ¯āĻŧāĨ¤
āĻ¨ā§āĻĄā§āĻ° āĻāĻ āĻ¨
āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§ āĻ¨ā§āĻĄ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻāĻŋ āĻ¨ā§āĻĄā§ āĻĻā§āĻāĻŋ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻĨāĻžāĻā§:
- āĻŽāĻžāĻ¨ (Value): āĻāĻāĻŋ āĻ¨ā§āĻĄā§āĻ° āĻŽā§āĻ˛ āĻ¤āĻĨā§āĻ¯āĨ¤
- āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° (Pointer): āĻāĻāĻŋ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¨ā§āĻĄā§āĻ° āĻ āĻŋāĻāĻžāĻ¨āĻžāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§āĨ¤
āĻāĻāĻāĻŋ āĻ¨ā§āĻĄā§āĻ° āĻāĻ āĻ¨ āĻ¨āĻŋāĻā§āĻ° āĻŽāĻ¤ā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§:
{
value: 7,
next:
}
āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§ āĻ¨ā§āĻĄ āĻ¯ā§āĻ āĻāĻ°āĻž
āĻ¯āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄ (āĻ¯ā§āĻŽāĻ¨ ā§Ē) āĻ¯ā§āĻ āĻāĻ°āĻŋ, āĻ¤āĻāĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻĨāĻŽā§ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯ā§ āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻ¨ā§āĻĄ (āĻ¯ā§āĻŽāĻ¨ ā§) āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž ā§ āĻāĻ° next
āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°āĻā§ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄā§āĻ° āĻ āĻŋāĻāĻžāĻ¨āĻžāĻ¯āĻŧ āĻ¸ā§āĻ āĻāĻ°āĻŋāĨ¤
node7.next = node4; // ā§ āĻ¨ā§āĻĄāĻāĻŋ ā§Ē āĻ¨ā§āĻĄā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§
āĻāĻāĻ¨, 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; // āĻā§āĻāĻ˛ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž
}
}
}
āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°
āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻ¨āĻžāĻŽāĻŋāĻ āĻĄā§āĻāĻž āĻ¸ā§āĻā§āĻ°āĻžāĻāĻāĻžāĻ° āĻ¯āĻž āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻ¨ā§āĻ° āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻŦāĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¨ā§āĻĄā§ āĻ¤āĻĨā§āĻ¯ āĻāĻŦāĻ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¨ā§āĻĄā§āĻ° āĻ āĻŋāĻāĻžāĻ¨āĻž āĻĨāĻžāĻā§, āĻ¯āĻž āĻāĻŽāĻžāĻĻā§āĻ°āĻā§ āĻ¸āĻšāĻā§āĻ āĻ¨āĻ¤ā§āĻ¨ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻ āĻāĻ āĻ¨āĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ°āĻā§ āĻŽā§āĻŽāĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ¯āĻŧ āĻ¨āĻŽāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤
āĻāĻŦāĻ āĻāĻāĻŋāĻ āĻāĻŋāĻ˛ āĻāĻŽāĻžāĻĻā§āĻ° āĻ˛āĻŋāĻā§āĻā§āĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻāĻ āĻ¨ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ˛ā§āĻāĻ¨āĻžāĨ¤
đĨ04- āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° Constructor
<br>
đĨ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
}
āĻ¸āĻŦāĻā§āĻ˛ā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§, āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻ˛āĻžāĻĻāĻž āĻā§āĻ˛āĻžāĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦ āĻ¯āĻžāĻā§ āĻāĻŽāĻ°āĻž Node
āĻŦāĻ˛āĻŦāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻ¨ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻ¤āĻāĻ¨ āĻāĻāĻŋ āĻāĻ āĻā§āĻ˛āĻžāĻ¸āĻāĻŋ āĻāĻ˛ āĻāĻ°āĻŦā§āĨ¤
â āĻ¨ā§āĻĄ āĻā§āĻ˛āĻžāĻ¸ Constructor
āĻ¨ā§āĻĄ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻ āĻ¨ āĻ¨āĻŋāĻā§āĻ° āĻŽāĻ¤ā§ āĻšāĻŦā§:
class Node {
constructor(value) {
this.value = value; // āĻ¨ā§āĻĄā§āĻ° āĻŽāĻžāĻ¨
this.next = null; // āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¨ā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°
}
}
// node class
class MyNode {
constructor(value) {
this.value = value;
this.next = null;
}
}
const newNode_4 = new MyNode(4); //{value:4, next:null}
â āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻ Constructor
āĻāĻāĻ¨ āĻāĻ¸ā§āĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ:
class LinkedList {
constructor(value) {
const newNode = new Node(value); // āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž
this.head = newNode; // āĻšā§āĻĄāĻā§ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻž
this.tail = newNode; // āĻā§āĻāĻ˛āĻā§ āĻāĻāĻ āĻ¨ā§āĻĄā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻž
this.length = 1; // āĻĻā§āĻ°ā§āĻā§āĻ¯ ā§§ āĻ¸ā§āĻ āĻāĻ°āĻž
}
}
āĻ¨āĻ¤ā§āĻ¨ āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž
āĻ¨āĻ¤ā§āĻ¨ āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻā§āĻ° āĻā§āĻĄāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§āĻ¨:
const myLinkedList = new LinkedList(4); // ā§Ē āĻŽāĻžāĻ¨ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž
āĻĄā§āĻāĻā§āĻ˛āĻ¸ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž
āĻāĻāĻ¨ āĻāĻ¸ā§āĻ¨ āĻĄā§āĻāĻā§āĻ˛āĻ¸ā§ āĻā§āĻĄāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻŋāĨ¤
- āĻĒā§āĻ°āĻĨāĻŽā§, āĻāĻŽāĻ°āĻž
new LinkedList(4)
āĻāĻ˛ āĻāĻ°āĻŋāĨ¤ - āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§ āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨ ā§Ē āĻāĻŦāĻ āĻāĻāĻŋ āĻšā§āĻĄ āĻ āĻā§āĻāĻ˛ āĻāĻāĻ¯āĻŧāĻā§āĻ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻŦā§āĨ¤
- āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž
myLinkedList
āĻ˛āĻŋāĻāĻŋ āĻāĻŦāĻ āĻāĻ¨ā§āĻāĻžāĻ° āĻāĻžāĻĒāĻŋ, āĻ¤āĻžāĻšāĻ˛ā§ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦ āĻ¯ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻāĻžāĻ āĻāĻ°āĻā§ āĻāĻŽāĻ¨ āĻ˛āĻŋāĻā§āĻā§āĻĄ āĻ˛āĻŋāĻ¸ā§āĻ āĻāĻā§āĨ¤
āĻĢāĻ˛āĻžāĻĢāĻ˛
LinkedList {
head: Node { value: 4, next: null },
tail: Node { value: 4, next: null },
length: 1
}
āĻāĻāĻŋ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻ¯ā§ āĻšā§āĻĄ āĻāĻŦāĻ āĻā§āĻāĻ˛ āĻāĻāĻ¯āĻŧāĻ āĻāĻāĻ āĻ āĻŦāĻā§āĻā§āĻāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻā§ āĻāĻŦāĻ āĻĻā§āĻ°ā§āĻā§āĻ¯ ā§§āĨ¤
āĻāĻŦāĻ āĻāĻāĻāĻžāĻŦā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ āĻ˛āĻŋāĻā§āĻā§āĻĄ āĻ˛āĻŋāĻ¸ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻšāĻ¯āĻŧā§āĻā§!
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
}
*/
đĨ05- āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻĒā§āĻļ (Push) āĻŽā§āĻĨāĻĄ
<br>
đĨ05- āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻĒā§āĻļ (Push) āĻŽā§āĻĨāĻĄ
āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻļ (Push) āĻŽā§āĻĨāĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦāĨ¤ āĻāĻ¸ā§āĻ¨ āĻĒā§āĻ°āĻĨāĻŽā§ āĻĒāĻĻāĻā§āĻˇā§āĻĒāĻā§āĻ˛ā§ āĻĻā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻāĨ¤
āĻĒā§āĻļ āĻŽā§āĻĨāĻĄā§āĻ° āĻĒāĻĻāĻā§āĻˇā§āĻĒ
- āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž: āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
- āĻ˛āĻžāĻ¸ā§āĻ āĻ¨ā§āĻĄā§āĻ° āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻ¸ā§āĻ āĻāĻ°āĻž: āĻ¤āĻžāĻ°āĻĒāĻ°, āĻļā§āĻˇ āĻ¨ā§āĻĄāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻŦā§āĨ¤
- āĻā§āĻāĻ˛ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž: āĻā§āĻāĻ˛ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°āĻāĻŋāĻ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻŦā§āĨ¤
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; // āĻĒā§āĻ°ā§ āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž
}
āĻā§āĻĄ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ
-
āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄ āĻ¤ā§āĻ°āĻŋ:
const newNode = new Node(value);
āĻāĻ āĻ˛āĻžāĻāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻāĻŋāĨ¤ -
āĻšā§āĻĄ āĻā§āĻ:
if (!this.head)
āĻāĻ āĻļāĻ°ā§āĻ¤āĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§ āĻ¯ā§ āĻšā§āĻĄ āĻāĻžāĻ˛āĻŋ āĻāĻŋ āĻ¨āĻžāĨ¤ āĻ¯āĻĻāĻŋ āĻāĻžāĻ˛āĻŋ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻšā§āĻĄ āĻāĻŦāĻ āĻā§āĻāĻ˛ āĻāĻāĻ¯āĻŧāĻ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§āĨ¤ - āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž: āĻ¯āĻĻāĻŋ āĻšā§āĻĄ āĻāĻžāĻ˛āĻŋ āĻ¨āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻļā§āĻˇ āĻ¨ā§āĻĄā§āĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°āĻā§ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻā§āĻāĻ˛ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻŋāĨ¤
-
āĻĻā§āĻ°ā§āĻā§āĻ¯ āĻŦāĻžāĻĄāĻŧāĻžāĻ¨ā§:
this.length++
āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻŽāĻ°āĻž āĻ˛āĻŋāĻā§āĻā§āĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻĻā§āĻ°ā§āĻā§āĻ¯ āĻŦāĻžāĻĄāĻŧāĻžāĻā§āĻāĻŋāĨ¤ -
āĻĢāĻŋāĻ°āĻŋāĻ¯āĻŧā§ āĻĻā§āĻāĻ¯āĻŧāĻž:
return this;
āĻĒā§āĻ°ā§ āĻ˛āĻŋāĻā§āĻā§āĻĄ āĻ˛āĻŋāĻ¸ā§āĻ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧāĨ¤
āĻĄā§āĻāĻā§āĻ˛āĻ¸ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž
āĻāĻāĻ¨ āĻāĻ¸ā§āĻ¨ āĻĄā§āĻāĻā§āĻ˛āĻ¸ā§ āĻā§āĻĄāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻŋ:
let myLinkedList = new LinkedList(7); // ā§ āĻŽāĻžāĻ¨ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ˛āĻŋāĻā§āĻā§āĻĄ āĻ˛āĻŋāĻ¸ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž
myLinkedList.push(4); // ā§Ē āĻŽāĻžāĻ¨ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž
- āĻ¯āĻāĻ¨ āĻāĻŽāĻ°āĻž
myLinkedList.push(4)
āĻāĻ˛ āĻāĻ°āĻŋ, āĻāĻāĻŋ āĻĒā§āĻ°ā§ āĻ˛āĻŋāĻā§āĻā§āĻĄ āĻ˛āĻŋāĻ¸ā§āĻ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻŦā§āĨ¤ - āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦ āĻ¯ā§ āĻšā§āĻĄ ā§ āĻ¨ā§āĻĄāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻā§ āĻāĻŦāĻ āĻā§āĻāĻ˛ ā§Ē āĻ¨ā§āĻĄāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻā§āĨ¤ āĻĻā§āĻ°ā§āĻā§āĻ¯ ā§¨āĨ¤
āĻĢāĻ˛āĻžāĻĢāĻ˛
LinkedList {
head: Node { value: 7, next: Node { value: 4, next: null } },
tail: Node { value: 4, next: null },
length: 2
}
đ˛ 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 --> 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);
āĻāĻŦāĻ āĻāĻāĻāĻžāĻŦā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻļ āĻŽā§āĻĨāĻĄ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ āĻšāĻ¯āĻŧā§āĻā§!
đĨ06- āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻĒāĻĒ (Pop) āĻŽā§āĻĨāĻĄ
<br>
đĨ06- āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻĒāĻĒ (Pop) āĻŽā§āĻĨāĻĄ
āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻĒ (Pop) āĻŽā§āĻĨāĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦāĨ¤
đ āĻĒāĻĒ āĻŽā§āĻĨāĻĄā§āĻ° āĻĒāĻĻāĻā§āĻˇā§āĻĒ
- āĻļā§āĻˇ āĻāĻāĻā§āĻŽ āĻ āĻĒāĻ¸āĻžāĻ°āĻŖ: āĻĒāĻĒ āĻŽā§āĻĨāĻĄāĻāĻŋ āĻļā§āĻˇ āĻāĻāĻā§āĻŽāĻāĻŋ āĻ¸āĻ°āĻŋāĻ¯āĻŧā§ āĻĻā§āĻŦā§ āĻāĻŦāĻ āĻā§āĻāĻ˛āĻā§ āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻā§āĻŽā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻŦā§āĨ¤
- āĻ āĻĒāĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻāĻā§āĻŽ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž: āĻ āĻĒāĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻāĻā§āĻŽāĻāĻŋ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻŦā§āĨ¤
đ āĻāĻ āĻā§āĻ¸
āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻŋāĻā§ āĻāĻ āĻā§āĻ¸ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§:
- āĻļā§āĻ¨ā§āĻ¯ āĻāĻāĻā§āĻŽ: āĻ¯āĻĻāĻŋ āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§ āĻā§āĻ¨āĻ āĻāĻāĻā§āĻŽ āĻ¨āĻž āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻŽāĻ°āĻž āĻāĻŋāĻā§ āĻ āĻĒāĻ¸āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻ¨āĻžāĨ¤
- āĻāĻāĻāĻŋ āĻāĻāĻā§āĻŽ: āĻ¯āĻĻāĻŋ āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§ āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻāĻāĻā§āĻŽ āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻŦāĻŋāĻļā§āĻˇāĻāĻžāĻŦā§ āĻā§āĻĄ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
đāĻĒāĻĒ āĻŽā§āĻĨāĻĄā§āĻ° Logic
- āĻā§āĻāĻ˛āĻā§ āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻā§āĻŽā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻž: āĻāĻāĻŋ āĻāĻŋāĻā§āĻāĻž āĻāĻāĻŋāĻ˛, āĻāĻžāĻ°āĻŖ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻāĻ˛āĻā§ āĻŦāĻžāĻŽ āĻĻāĻŋāĻā§ āĻ¸āĻ°āĻžāĻ¤ā§ āĻšāĻŦā§āĨ¤
- āĻ¨ā§āĻ¸ā§āĻā§āĻĄ āĻ āĻŦāĻā§āĻā§āĻ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻĻā§āĻāĻ¤ā§ āĻšāĻŦā§: āĻā§āĻāĻ˛āĻā§ āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻā§āĻŽā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻžāĻĻā§āĻ° āĻšā§āĻĄ āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻāĻ°ā§ āĻĒā§āĻ°ā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻāĻŋ āĻĒāĻžāĻ° āĻšāĻ¤ā§ āĻšāĻŦā§āĨ¤
đ āĻā§āĻĄāĻŋāĻ āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻž
- āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž:
-
temp
: āĻāĻāĻŋ āĻļā§āĻˇ āĻ¨ā§āĻĄāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻŦā§āĨ¤ -
pre
: āĻāĻāĻŋ āĻļā§āĻˇā§āĻ° āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻ¨ā§āĻĄāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻŦā§āĨ¤
- āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻŽāĻ§ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°āĻž:
-
temp
āĻāĻ°next
āĻ¯āĻĻāĻŋ āĻ āĻ¨ā§āĻ¯ āĻ¨ā§āĻĄāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§, āĻ¤āĻžāĻšāĻ˛ā§pre
āĻā§ āĻāĻĒāĻĄā§āĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻtemp
āĻā§ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¨ā§āĻĄā§ āĻ¸āĻ°āĻžāĻ¨āĨ¤ - āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ˛āĻ¤ā§ āĻĨāĻžāĻāĻŦā§ āĻ¯āĻ¤āĻā§āĻˇāĻŖ āĻ¨āĻž
temp.next
null
āĻšāĻ¯āĻŧāĨ¤
- āĻā§āĻāĻ˛ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž:
- āĻā§āĻāĻ˛āĻā§
pre
āĻāĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§āĻ¨āĨ¤ -
tail.next
āĻā§null
āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨, āĻ¯āĻž āĻļā§āĻˇ āĻ¨ā§āĻĄāĻāĻŋ āĻ¸āĻ°āĻŋāĻ¯āĻŧā§ āĻĻā§āĻŦā§āĨ¤
-
āĻ
āĻĒāĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ¨ā§āĻĄ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž:
- āĻ
āĻŦāĻļā§āĻˇā§,
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
}
āĻāĻāĻŋ āĻāĻŋāĻ˛ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒāĻĒ āĻŽā§āĻĨāĻĄā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖāĨ¤
đ āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻĒāĻĒ (Pop) āĻŽā§āĻĨāĻĄ
āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻĒāĻĒ (Pop) āĻŽā§āĻĨāĻĄāĻāĻŋ āĻā§āĻĄ āĻāĻ°āĻŦāĨ¤ āĻāĻ āĻŽā§āĻĨāĻĄāĻāĻŋ āĻļā§āĻˇ āĻāĻāĻā§āĻŽāĻāĻŋ āĻ¸āĻ°āĻŋāĻ¯āĻŧā§ āĻĻā§āĻŦā§ āĻāĻŦāĻ āĻā§āĻāĻ˛āĻā§ āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻā§āĻŽā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻŦā§āĨ¤
āĻĒāĻĒ āĻŽā§āĻĨāĻĄā§āĻ° āĻĒāĻĻāĻā§āĻˇā§āĻĒ
- āĻļā§āĻ¨ā§āĻ¯ āĻāĻāĻā§āĻŽ āĻā§āĻ āĻāĻ°āĻž: āĻĒā§āĻ°āĻĨāĻŽā§ āĻā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯ā§ āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§ āĻā§āĻ¨ā§ āĻāĻāĻā§āĻŽ āĻāĻā§ āĻāĻŋāĻ¨āĻžāĨ¤
- āĻāĻāĻāĻŋ āĻāĻāĻā§āĻŽ āĻā§āĻ āĻāĻ°āĻž: āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻā§āĻŽ āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻšā§āĻĄ āĻāĻŦāĻ āĻā§āĻāĻ˛ āĻāĻāĻ¯āĻŧāĻ āĻ¸ā§āĻ āĻāĻāĻā§āĻŽā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻŦā§āĨ¤
- āĻĻā§āĻ āĻŦāĻž āĻ¤āĻ¤ā§āĻ§āĻŋāĻ āĻāĻāĻā§āĻŽ āĻĨāĻžāĻāĻž: āĻ¯āĻĻāĻŋ āĻĻā§āĻāĻŋ āĻŦāĻž āĻ¤āĻžāĻ° āĻŦā§āĻļāĻŋ āĻāĻāĻā§āĻŽ āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻ¨ā§āĻĄā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻŽāĻ§ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻā§āĻĄāĻŋāĻ āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻž
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; // āĻ
āĻĒāĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ¨ā§āĻĄ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž
}
āĻā§āĻĄ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ
-
āĻļā§āĻ¨ā§āĻ¯ āĻāĻāĻā§āĻŽ āĻā§āĻ:
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 āĻĢā§āĻ°āĻ¤ āĻĻā§āĻŦā§ āĻāĻžāĻ°āĻŖ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻāĻžāĻ˛āĻŋ
āĻĢāĻ˛āĻžāĻĢāĻ˛
- āĻĒā§āĻ°āĻĨāĻŽ āĻĒāĻĒ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻāĻŋ ā§¨ āĻ¨ā§āĻĄ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧ āĻāĻŦāĻ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ ā§§ āĻ¨ā§āĻĄ āĻĨāĻžāĻā§āĨ¤
- āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĒāĻĒ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻāĻŋ ā§§ āĻ¨ā§āĻĄ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧ āĻāĻŦāĻ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻāĻžāĻ˛āĻŋ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤
- āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ āĻĒāĻĒ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻāĻŋ
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);
đĨ07- āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻāĻ¨āĻļāĻŋāĻĢāĻ (Unshift) āĻŽā§āĻĨāĻĄ
<br>
đĨ07- āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻāĻ¨āĻļāĻŋāĻĢāĻ (Unshift) āĻŽā§āĻĨāĻĄ
āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¨āĻļāĻŋāĻĢāĻ (Unshift) āĻŽā§āĻĨāĻĄāĻāĻŋ āĻ˛āĻŋāĻāĻŦāĨ¤ āĻāĻ¨āĻļāĻŋāĻĢāĻ āĻŽā§āĻĨāĻĄāĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄāĻā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻļā§āĻ°ā§āĻ¤ā§ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§āĨ¤
āĻāĻ¨āĻļāĻŋāĻĢāĻ āĻŽā§āĻĨāĻĄā§āĻ° āĻĒāĻĻāĻā§āĻˇā§āĻĒ
- āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž: āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
- āĻšā§āĻĄ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž: āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄāĻāĻŋ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻšā§āĻĄā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻŦā§āĨ¤
- āĻšā§āĻĄ āĻāĻŦāĻ āĻā§āĻāĻ˛ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž: āĻ¯āĻĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻāĻžāĻ˛āĻŋ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻšā§āĻĄ āĻāĻŦāĻ āĻā§āĻāĻ˛ āĻāĻāĻ¯āĻŧāĻ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻŦā§āĨ¤
āĻā§āĻĄāĻŋāĻ āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻž
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; // āĻĒā§āĻ°ā§ āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž
}
āĻā§āĻĄ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ
-
āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄ āĻ¤ā§āĻ°āĻŋ:
const newNode = new Node(value);
āĻāĻ āĻ˛āĻžāĻāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻāĻŋāĨ¤ -
āĻšā§āĻĄ āĻā§āĻ:
if (!this.head)
āĻāĻ āĻļāĻ°ā§āĻ¤āĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§ āĻ¯ā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻāĻžāĻ˛āĻŋ āĻāĻŋ āĻ¨āĻžāĨ¤ āĻ¯āĻĻāĻŋ āĻāĻžāĻ˛āĻŋ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻšā§āĻĄ āĻāĻŦāĻ āĻā§āĻāĻ˛ āĻāĻāĻ¯āĻŧāĻ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§āĨ¤ -
āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž: āĻ¯āĻĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻāĻžāĻ˛āĻŋ āĻ¨āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§
newNode.next = this.head;
āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄā§āĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°āĻā§ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻšā§āĻĄā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻĒāĻ°ā§ āĻšā§āĻĄ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻŋāĨ¤ -
āĻĻā§āĻ°ā§āĻā§āĻ¯ āĻŦāĻžāĻĄāĻŧāĻžāĻ¨ā§:
this.length++
āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻŽāĻ°āĻž āĻ˛āĻŋāĻā§āĻā§āĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻĻā§āĻ°ā§āĻā§āĻ¯ āĻŦāĻžāĻĄāĻŧāĻžāĻā§āĻāĻŋāĨ¤ -
āĻĢāĻŋāĻ°āĻŋāĻ¯āĻŧā§ āĻĻā§āĻāĻ¯āĻŧāĻž:
return this;
āĻĒā§āĻ°ā§ āĻ˛āĻŋāĻā§āĻā§āĻĄ āĻ˛āĻŋāĻ¸ā§āĻ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧāĨ¤
āĻĄā§āĻāĻā§āĻ˛āĻ¸ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž
āĻāĻāĻ¨ āĻāĻ¸ā§āĻ¨ āĻĄā§āĻāĻā§āĻ˛āĻ¸ā§ āĻā§āĻĄāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻŋ:
let myLinkedList = new LinkedList(11); // ā§§ā§§ āĻŽāĻžāĻ¨ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ˛āĻŋāĻā§āĻā§āĻĄ āĻ˛āĻŋāĻ¸ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž
myLinkedList.unshift(4); // ā§Ē āĻŽāĻžāĻ¨ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž
- āĻ¯āĻāĻ¨ āĻāĻŽāĻ°āĻž
myLinkedList.unshift(4)
āĻāĻ˛ āĻāĻ°āĻŋ, āĻāĻāĻŋ āĻĒā§āĻ°ā§ āĻ˛āĻŋāĻā§āĻā§āĻĄ āĻ˛āĻŋāĻ¸ā§āĻ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻŦā§āĨ¤
āĻĢāĻ˛āĻžāĻĢāĻ˛
LinkedList {
head: Node { value: 4, next: Node { value: 11, next: null } },
tail: Node { value: 11, next: null },
length: 2
}
āĻāĻŦāĻ āĻāĻāĻāĻžāĻŦā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨āĻļāĻŋāĻĢāĻ (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);
đĨ08- āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻļāĻŋāĻĢāĻ (Shift) āĻŽā§āĻĨāĻĄ
<br>
đĨ08 āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻļāĻŋāĻĢāĻ (Shift) āĻŽā§āĻĨāĻĄ
āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻļāĻŋāĻĢāĻ (Shift) āĻŽā§āĻĨāĻĄāĻāĻŋ āĻ˛āĻŋāĻāĻŦāĨ¤ āĻļāĻŋāĻĢāĻ āĻŽā§āĻĨāĻĄāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻāĻāĻā§āĻŽāĻāĻŋ āĻ¸āĻ°āĻŋāĻ¯āĻŧā§ āĻĻā§āĻŦā§ āĻāĻŦāĻ āĻ¸ā§āĻ āĻāĻāĻā§āĻŽāĻāĻŋ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻŦā§āĨ¤
āĻļāĻŋāĻĢāĻ āĻŽā§āĻĨāĻĄā§āĻ° āĻĒāĻĻāĻā§āĻˇā§āĻĒ
- āĻļā§āĻ¨ā§āĻ¯ āĻāĻāĻā§āĻŽ āĻā§āĻ āĻāĻ°āĻž: āĻĒā§āĻ°āĻĨāĻŽā§ āĻā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯ā§ āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§ āĻā§āĻ¨ā§ āĻāĻāĻā§āĻŽ āĻāĻā§ āĻāĻŋāĻ¨āĻžāĨ¤
- āĻāĻāĻāĻŋ āĻāĻāĻā§āĻŽ āĻĨāĻžāĻāĻž: āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻā§āĻŽ āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻšā§āĻĄ āĻāĻŦāĻ āĻā§āĻāĻ˛ āĻāĻāĻ¯āĻŧāĻ āĻ¸ā§āĻ āĻāĻāĻā§āĻŽā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻŦā§āĨ¤
- āĻĻā§āĻ āĻŦāĻž āĻ¤āĻ¤ā§āĻ§āĻŋāĻ āĻāĻāĻā§āĻŽ āĻĨāĻžāĻāĻž: āĻ¯āĻĻāĻŋ āĻĻā§āĻāĻŋ āĻŦāĻž āĻ¤āĻžāĻ° āĻŦā§āĻļāĻŋ āĻāĻāĻā§āĻŽ āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻšā§āĻĄāĻā§ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¨ā§āĻĄā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻā§āĻĄāĻŋāĻ āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻž
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; // āĻ
āĻĒāĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ¨ā§āĻĄ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž
}
āĻā§āĻĄ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ
-
āĻļā§āĻ¨ā§āĻ¯ āĻāĻāĻā§āĻŽ āĻā§āĻ:
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 āĻĢā§āĻ°āĻ¤ āĻĻā§āĻŦā§ āĻāĻžāĻ°āĻŖ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻāĻžāĻ˛āĻŋ
āĻĢāĻ˛āĻžāĻĢāĻ˛
- āĻĒā§āĻ°āĻĨāĻŽ āĻļāĻŋāĻĢāĻ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻāĻŋ ā§§ āĻ¨ā§āĻĄ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧ āĻāĻŦāĻ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ ā§¨ āĻ¨ā§āĻĄ āĻĨāĻžāĻā§āĨ¤
- āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻļāĻŋāĻĢāĻ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻāĻŋ ā§¨ āĻ¨ā§āĻĄ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧ āĻāĻŦāĻ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻāĻžāĻ˛āĻŋ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤
- āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ āĻļāĻŋāĻĢāĻ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻāĻŋ
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);
đĨ09 -āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻā§āĻ (Get) āĻŽā§āĻĨāĻĄ
<br>
đĨ09 -āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻā§āĻ (Get) āĻŽā§āĻĨāĻĄ
āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ (Get) āĻŽā§āĻĨāĻĄāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦāĨ¤ āĻā§āĻ āĻŽā§āĻĨāĻĄāĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ¨āĻĄā§āĻā§āĻ¸ā§ āĻĨāĻžāĻāĻž āĻ¨ā§āĻĄāĻāĻŋ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧāĨ¤
āĻā§āĻ āĻŽā§āĻĨāĻĄā§āĻ° āĻĒāĻĻāĻā§āĻˇā§āĻĒ
- āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻā§āĻ āĻāĻ°āĻž: āĻĒā§āĻ°āĻĨāĻŽā§ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯ā§ āĻāĻ¨āĻĄā§āĻā§āĻ¸āĻāĻŋ āĻŦā§āĻ§ āĻāĻŋāĻ¨āĻžāĨ¤
- āĻ¨ā§āĻĄ āĻā§āĻāĻāĻž: āĻ¯āĻĻāĻŋ āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻŦā§āĻ§ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻļā§āĻ°ā§ āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ¨āĻĄā§āĻā§āĻ¸ā§ āĻĒā§āĻāĻāĻžāĻ¤ā§ āĻšāĻŦā§āĨ¤
- āĻ¨ā§āĻĄ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž: āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ¨āĻĄā§āĻā§āĻ¸ā§āĻ° āĻ¨ā§āĻĄāĻāĻŋ āĻĢā§āĻ°āĻ¤ āĻĻāĻŋāĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻā§āĻĄāĻŋāĻ āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻž
get(index) {
// ā§§. āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻā§āĻ āĻāĻ°āĻž
if (index < 0 || index >= this.length) {
return undefined; // āĻ
āĻŦā§āĻ§ āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻšāĻ˛ā§ undefined āĻĢā§āĻ°āĻ¤ āĻĻāĻŋāĻ¨
}
let temp = this.head; // āĻā§āĻŽā§āĻĒ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻšā§āĻĄāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§
// ā§¨. āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻŽāĻ§ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°āĻž
for (let i = 0; i < index; i++) {
temp = temp.next; // āĻā§āĻŽā§āĻĒāĻā§ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¨ā§āĻĄā§ āĻ¸āĻ°āĻžāĻ¨ā§
}
return temp; // āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ¨āĻĄā§āĻā§āĻ¸ā§āĻ° āĻ¨ā§āĻĄ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž
}
āĻā§āĻĄ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ
-
āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻā§āĻ:
if (index < 0 || index >= this.length)
āĻāĻ āĻļāĻ°ā§āĻ¤āĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§ āĻ¯ā§ āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻŦā§āĻ§ āĻāĻŋāĻ¨āĻžāĨ¤ āĻ¯āĻĻāĻŋ āĻ āĻŦā§āĻ§ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§undefined
āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤ -
āĻ¨ā§āĻĄ āĻā§āĻāĻāĻž:
for (let i = 0; i < 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)); // āĻāĻāĻŋ ā§¨ āĻ¨ā§āĻĄ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻŦā§ (āĻŦā§āĻ§ āĻāĻ¨āĻĄā§āĻā§āĻ¸)
āĻĢāĻ˛āĻžāĻĢāĻ˛
- āĻĒā§āĻ°āĻĨāĻŽ āĻā§āĻ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻāĻŋ āĻ
āĻŦā§āĻ§ āĻāĻ¨āĻĄā§āĻā§āĻ¸ (-1) āĻāĻ° āĻāĻ¨ā§āĻ¯
undefined
āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧāĨ¤ - āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻā§āĻ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻāĻŋ āĻ
āĻŦā§āĻ§ āĻāĻ¨āĻĄā§āĻā§āĻ¸ (10) āĻāĻ° āĻāĻ¨ā§āĻ¯āĻ
undefined
āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧāĨ¤ - āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ āĻā§āĻ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻāĻŋ āĻŦā§āĻ§ āĻāĻ¨āĻĄā§āĻā§āĻ¸ (2) āĻāĻ° āĻāĻ¨ā§āĻ¯ ā§¨ āĻ¨ā§āĻĄā§āĻ° āĻŽāĻžāĻ¨ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧāĨ¤
āĻāĻŦāĻ āĻāĻāĻāĻžāĻŦā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻ (Get) āĻŽā§āĻĨāĻĄ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ āĻšāĻ¯āĻŧā§āĻā§!
đĨ10- āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻ¸ā§āĻ (Set) āĻŽā§āĻĨāĻĄ
<br>
đĨ10- āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻ¸ā§āĻ (Set) āĻŽā§āĻĨāĻĄ
āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻ (Set) āĻŽā§āĻĨāĻĄāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦāĨ¤ āĻ¸ā§āĻ āĻŽā§āĻĨāĻĄāĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ¨āĻĄā§āĻā§āĻ¸ā§ āĻĨāĻžāĻāĻž āĻ¨ā§āĻĄā§āĻ° āĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĨ¤
āĻ¸ā§āĻ āĻŽā§āĻĨāĻĄā§āĻ° āĻĒāĻĻāĻā§āĻˇā§āĻĒ
- āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻā§āĻ āĻāĻ°āĻž: āĻĒā§āĻ°āĻĨāĻŽā§ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯ā§ āĻāĻ¨āĻĄā§āĻā§āĻ¸āĻāĻŋ āĻŦā§āĻ§ āĻāĻŋāĻ¨āĻžāĨ¤
- āĻ¨ā§āĻĄ āĻā§āĻāĻāĻž: āĻ¯āĻĻāĻŋ āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻŦā§āĻ§ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻļā§āĻ°ā§ āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ¨āĻĄā§āĻā§āĻ¸ā§ āĻĒā§āĻāĻāĻžāĻ¤ā§ āĻšāĻŦā§āĨ¤
- āĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž: āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ¨āĻĄā§āĻā§āĻ¸ā§āĻ° āĻ¨ā§āĻĄāĻāĻŋāĻ° āĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
-
āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž: āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ˛ā§
true
āĻĢā§āĻ°āĻ¤ āĻĻāĻŋāĻ¤ā§ āĻšāĻŦā§, āĻ āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧfalse
āĨ¤
āĻā§āĻĄāĻŋāĻ āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻž
set(index, value) {
// ā§§. āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻā§āĻ āĻāĻ°āĻž
if (index < 0 || index >= this.length) {
return false; // āĻ
āĻŦā§āĻ§ āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻšāĻ˛ā§ false āĻĢā§āĻ°āĻ¤ āĻĻāĻŋāĻ¨
}
let temp = this.get(index); // āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ¨āĻĄā§āĻā§āĻ¸ā§āĻ° āĻ¨ā§āĻĄ āĻā§āĻāĻāĻž
// ā§¨. āĻ¨ā§āĻĄ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻā§āĻ˛ā§ āĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž
if (temp) {
temp.value = value; // āĻ¨ā§āĻĄā§āĻ° āĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž
return true; // āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ˛ā§ true āĻĢā§āĻ°āĻ¤ āĻĻāĻŋāĻ¨
}
return false; // āĻ¨ā§āĻĄ āĻ¨āĻž āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻā§āĻ˛ā§ false āĻĢā§āĻ°āĻ¤ āĻĻāĻŋāĻ¨
}
āĻā§āĻĄ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ
-
āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻā§āĻ:
if (index < 0 || index >= 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)); // āĻāĻāĻŋ āĻāĻāĻ¨ ā§Ē āĻĢā§āĻ°āĻ¤ āĻĻā§āĻŦā§
āĻĢāĻ˛āĻžāĻĢāĻ˛
- āĻĒā§āĻ°āĻĨāĻŽ āĻ¸ā§āĻ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻāĻŋ āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ ā§¨ āĻ¨ā§āĻĄā§āĻ° āĻŽāĻžāĻ¨āĻā§ ā§Ē āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§ āĻāĻŦāĻ
true
āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧāĨ¤ - āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻā§āĻ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻžāĻ¨ (ā§Ē) āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧāĨ¤
āĻāĻŦāĻ āĻāĻāĻāĻžāĻŦā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸ā§āĻ (Set) āĻŽā§āĻĨāĻĄ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ āĻšāĻ¯āĻŧā§āĻā§!
đĨ11 -āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻāĻ¨āĻ¸āĻžāĻ°ā§āĻ (Insert) āĻŽā§āĻĨāĻĄ
<br>
đĨ11 āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻāĻ¨āĻ¸āĻžāĻ°ā§āĻ (Insert) āĻŽā§āĻĨāĻĄ
Insert Node at any position
āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¨āĻ¸āĻžāĻ°ā§āĻ (Insert) āĻŽā§āĻĨāĻĄāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦāĨ¤ āĻāĻ¨āĻ¸āĻžāĻ°ā§āĻ āĻŽā§āĻĨāĻĄāĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ¨āĻĄā§āĻā§āĻ¸ā§ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§āĨ¤
āĻāĻ¨āĻ¸āĻžāĻ°ā§āĻ āĻŽā§āĻĨāĻĄā§āĻ° āĻĒāĻĻāĻā§āĻˇā§āĻĒ
- āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻā§āĻ āĻāĻ°āĻž: āĻĒā§āĻ°āĻĨāĻŽā§ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯ā§ āĻāĻ¨āĻĄā§āĻā§āĻ¸āĻāĻŋ āĻŦā§āĻ§ āĻāĻŋāĻ¨āĻžāĨ¤
- āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž: āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
-
āĻ¨ā§āĻĄ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž:
- āĻ¯āĻĻāĻŋ āĻāĻ¨āĻĄā§āĻā§āĻ¸ ā§Ļ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§
unshift
āĻŽā§āĻĨāĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨āĨ¤ - āĻ¯āĻĻāĻŋ āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻĻā§āĻ°ā§āĻā§āĻ¯ā§āĻ° āĻ¸āĻŽāĻžāĻ¨ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§
push
āĻŽā§āĻĨāĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§āĻĄ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨āĨ¤ - āĻ¯āĻĻāĻŋ āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻŦā§āĻ§ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻŽāĻžāĻāĻāĻžāĻ¨ā§ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻ¨ā§āĻĄā§āĻ° āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻāĻĒāĻĄā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
- āĻ¯āĻĻāĻŋ āĻāĻ¨āĻĄā§āĻā§āĻ¸ ā§Ļ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§
āĻā§āĻĄāĻŋāĻ āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻž
insert(index, value) {
// ā§§. āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻā§āĻ āĻāĻ°āĻž
if (index < 0 || index > 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 āĻĢā§āĻ°āĻ¤ āĻĻāĻŋāĻ¨
}
āĻā§āĻĄ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ
-
āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻā§āĻ:
if (index < 0 || index > 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); // āĻāĻāĻ¨ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ ā§Ļ -> ā§§ -> ā§¨ āĻĨāĻžāĻāĻŦā§
āĻĢāĻ˛āĻžāĻĢāĻ˛
- āĻĒā§āĻ°āĻĨāĻŽ āĻāĻ¨āĻ¸āĻžāĻ°ā§āĻ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻāĻŋ āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ ā§§ āĻ¨ā§āĻĄāĻā§ āĻāĻ¨āĻ¸āĻžāĻ°ā§āĻ āĻāĻ°ā§ āĻāĻŦāĻ
true
āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧāĨ¤ - āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻāĻāĻ¨ ā§Ļ -> ā§§ -> ā§¨ āĻ°ā§āĻĒā§ āĻĨāĻžāĻāĻŦā§āĨ¤
āĻāĻŦāĻ āĻāĻāĻāĻžāĻŦā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨āĻ¸āĻžāĻ°ā§āĻ (Insert) āĻŽā§āĻĨāĻĄ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ āĻšāĻ¯āĻŧā§āĻā§!
đĨ12-āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻ°āĻŋāĻŽā§āĻ (Remove) āĻŽā§āĻĨāĻĄ
<br>
đĨ12-āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻ°āĻŋāĻŽā§āĻ (Remove) āĻŽā§āĻĨāĻĄ
āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ°āĻŋāĻŽā§āĻ (Remove) āĻŽā§āĻĨāĻĄāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦāĨ¤ āĻ°āĻŋāĻŽā§āĻ āĻŽā§āĻĨāĻĄāĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻāĻāĻā§āĻŽ āĻ¸āĻ°āĻŋāĻ¯āĻŧā§ āĻĻā§āĻ¯āĻŧāĨ¤
āĻ°āĻŋāĻŽā§āĻ āĻŽā§āĻĨāĻĄā§āĻ° āĻĒāĻĻāĻā§āĻˇā§āĻĒ
- āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻā§āĻ āĻāĻ°āĻž: āĻĒā§āĻ°āĻĨāĻŽā§ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯ā§ āĻāĻ¨āĻĄā§āĻā§āĻ¸āĻāĻŋ āĻŦā§āĻ§ āĻāĻŋāĻ¨āĻžāĨ¤
-
āĻĒā§āĻ°āĻĨāĻŽ āĻāĻāĻā§āĻŽ āĻ¸āĻ°āĻžāĻ¨ā§: āĻ¯āĻĻāĻŋ āĻāĻ¨āĻĄā§āĻā§āĻ¸ ā§Ļ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§
shift
āĻŽā§āĻĨāĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻā§āĻŽ āĻ¸āĻ°āĻžāĻ¨āĨ¤ -
āĻļā§āĻˇ āĻāĻāĻā§āĻŽ āĻ¸āĻ°āĻžāĻ¨ā§: āĻ¯āĻĻāĻŋ āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻĻā§āĻ°ā§āĻā§āĻ¯ā§āĻ° āĻ¸āĻŽāĻžāĻ¨ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§
pop
āĻŽā§āĻĨāĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻā§āĻŽ āĻ¸āĻ°āĻžāĻ¨āĨ¤ - āĻŽāĻžāĻā§ āĻāĻāĻā§āĻŽ āĻ¸āĻ°āĻžāĻ¨ā§: āĻ¯āĻĻāĻŋ āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻŦā§āĻ§ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻŽāĻžāĻāĻāĻžāĻ¨ā§ āĻāĻāĻā§āĻŽ āĻ¸āĻ°āĻžāĻ¤ā§ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻ¨ā§āĻĄā§āĻ° āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻāĻĒāĻĄā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
āĻā§āĻĄāĻŋāĻ āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻž
remove(index) {
// ā§§. āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻā§āĻ āĻāĻ°āĻž
if (index < 0 || index >= 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; // āĻ
āĻĒāĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ¨ā§āĻĄ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž
}
āĻā§āĻĄ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ
-
āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻā§āĻ:
if (index < 0 || index >= 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); // āĻāĻāĻ¨ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ ā§§ā§§ -> ā§ āĻĨāĻžāĻāĻŦā§, āĻĻā§āĻ°ā§āĻā§āĻ¯ āĻšāĻŦā§ 2
āĻĢāĻ˛āĻžāĻĢāĻ˛
- āĻĒā§āĻ°āĻĨāĻŽ āĻ°āĻŋāĻŽā§āĻ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻāĻŋ āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ ā§¨ā§Š āĻ¨ā§āĻĄāĻā§ āĻ¸āĻ°āĻŋāĻ¯āĻŧā§ āĻĻā§āĻ¯āĻŧ āĻāĻŦāĻ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧāĨ¤
- āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻāĻāĻ¨ ā§§ā§§ -> ā§ āĻ°ā§āĻĒā§ āĻĨāĻžāĻāĻŦā§ āĻāĻŦāĻ āĻĻā§āĻ°ā§āĻā§āĻ¯ āĻšāĻŦā§ ā§¨āĨ¤
āĻāĻŦāĻ āĻāĻāĻāĻžāĻŦā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ°āĻŋāĻŽā§āĻ (Remove) āĻŽā§āĻĨāĻĄ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ āĻšāĻ¯āĻŧā§āĻā§!
đĨ13-Reverse Linked List
<br>
đĨ13-āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¸ (Reverse) āĻŽā§āĻĨāĻĄ
āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¸ (Reverse) āĻŽā§āĻĨāĻĄāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦāĨ¤ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¸ āĻŽā§āĻĨāĻĄāĻāĻŋ āĻāĻāĻāĻŋ āĻ˛āĻŋāĻā§āĻāĻĄ āĻ˛āĻŋāĻ¸ā§āĻā§āĻ° āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋāĻā§ āĻāĻ˛ā§āĻā§ āĻĻā§āĻ¯āĻŧāĨ¤
āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¸ āĻŽā§āĻĨāĻĄā§āĻ° āĻĒāĻĻāĻā§āĻˇā§āĻĒ
- āĻšā§āĻĄ āĻāĻŦāĻ āĻā§āĻāĻ˛ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨: āĻĒā§āĻ°āĻĨāĻŽā§ āĻšā§āĻĄ āĻāĻŦāĻ āĻā§āĻāĻ˛āĻā§ āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
- āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋāĻ° āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨: āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¨ā§āĻĄā§āĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°āĻā§ āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻ¨ā§āĻĄā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
- āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž: āĻĒā§āĻ°ā§ āĻāĻ˛ā§āĻāĻžāĻ¨ā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĢā§āĻ°āĻ¤ āĻĻāĻŋāĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻā§āĻĄāĻŋāĻ āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻž
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; // āĻĒā§āĻ°ā§ āĻāĻ˛ā§āĻāĻžāĻ¨ā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž
}
āĻā§āĻĄ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ
-
āĻšā§āĻĄ āĻāĻŦāĻ āĻā§āĻāĻ˛ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨: āĻĒā§āĻ°āĻĨāĻŽā§
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()); // āĻāĻāĻŋ āĻāĻ˛ā§āĻāĻžāĻ¨ā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĢā§āĻ°āĻ¤ āĻĻā§āĻŦā§
āĻĢāĻ˛āĻžāĻĢāĻ˛
- āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¸ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻāĻāĻ¨ ā§Š -> ā§¨ -> ā§§ āĻ°ā§āĻĒā§ āĻĨāĻžāĻāĻŦā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻšā§āĻĄ āĻāĻāĻ¨ ā§Š āĻāĻŦāĻ āĻā§āĻāĻ˛ ā§§āĨ¤
āĻāĻŦāĻ āĻāĻāĻāĻžāĻŦā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¸ (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();
Posted on October 5, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.