Comments (1)
@knasim thank you for your comment.
You're right in case if we're talking about "delete by value" and not about "delete by node reference" functionality. In the case we will need to traverse whole linked list to find the node and then we'll do O(1) deletion.
But the context of the phrase "This structure allows for efficient insertion or removal of elements from any position in the sequence during iteration" is different. It means that deletion of the node from linked list will cost you O(1) in case if you have a pointer to the node. Or for example if you're deleting the head or the tail (pretty common linked list operations). In these case the deletion will indeed be done in O(1) time. Consider following implementation for doubly linked list:
const node1 = linkedList.append('value #1');
const node2 = linkedList.append('value #2');
const node3 = linkedList.append('value #3');
linkedList.delete(node2);
What you will need to do in the last code line is just make node2.previous to be a new parent for node2.next node. It is done in O(1), no search needed.
Another question here is that in current repository the doubly linked list is not implemented. And in current implementation in this repo the deletion operation will indeed be done in O(n) time. But this fact doesn't mean that phrase "This structure allows for efficient insertion or removal of elements from any position in the sequence during iteration" isn't correct.
Does it make sense?
from javascript-algorithms.
Related Issues (20)
- NO code available for Longest Increasing Subsequence HOT 6
- How to use the repository HOT 2
- Add Animations to Algorithms
- Binary Search file, comment typo HOT 3
- JS Data structure And Algorithms HOT 1
- priorityQueue does not poll out as expected HOT 4
- Javadcript
- Typo in Portuguese README
- Data structures and algorithms by JavaScript
- Would be great to see `discussions` tab brought to this repository
- JavaScript HOT 3
- Traverse in Reverse is unnecessary complex HOT 4
- Unhandled Edge Case in Binary Search Implementation HOT 1
- `replaceChild` method in BinaryTreeNode is not correct HOT 1
- Pendekatan "Brute Force" dan "Divide and Conquer" HOT 1
- Why this pointing to global context is giving undefined, even when global variable is defined ? HOT 2
- is there support for support for `BigInt` HOT 1
- My dsa roadmap HOT 2
- Ne data project
- Learn HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from javascript-algorithms.