đĨ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();
Top comments (0)