-
-
Notifications
You must be signed in to change notification settings - Fork 546
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Linked List: adding 'delete' to required methods #1559
Conversation
adding 'delete' to the list of methods the method should have: test suite is expecting the delete method implemented in some assertions.
There are a few possible meanings for
When I read a description of "remove any node by value", it seems to me to imply the second possibility for A note for tracks implementing this exercise (noting that we have no canonical-data.json) that if deletion is added, it will probably be wise to test deletion from the head of the list, from the tail of the list, and from the middle. Take this into account when deciding whether to add delete. I will make my recommendation in a next comment. |
Personally I'll recommend against adding any of the three above possibilites of For "delete, given a way to refer to a node", I recommend against with preference strength 3/10. Note that this is the first time we allow a client of this list to refer to a node. In all other existing operations, they only have to be able to refer to a list and can remain completely ignorant that any nodes exist at all. It's not inherently bad to give the client more knowledge, but it will require more work on the part of students + mentors to make sure the interface thus provided makes sense. For "delete, given a value and a list" and "delete, given an index and a list" I will recommend against with preference strength 1/10 because it "feels bad" to add an O(n) operation to this list. There's nothing wrong with it since these are possibly things that someone would want to be able to do to a list, so I did not give it any higher strength. After all, if the client uses these variants of |
Hello. Thank you for this PR - it's really appreciated. This repo is currently on "lock-down" while we think through a few things. As such, I'm going to put this PR on hold for now, and we will come back to once we've worked through the issues with this repo that we need to address. You can read more here. Sorry that you've hit us at this momentarily awkward juncture, and thank you again for the contribution. |
Hi @petertseng thanks for your in-dept comment about this. From my short experience with this project, I have come to know that more "advanced" topics are not part of any discussion when mentoring students (advanced as in time/space complexity, recursion, best practices). Other mentors have always pointed out that we should maintain a non-strict posture when helping students. Your comments about algorithm complexity makes a lot of sense and I like the idea that this topics are in the discussion board, even if they are not part on the current state of the project. I'll be more than happy to continue contributing to this project as much as I can! @kytrinyx don't worry about it and many thanks for letting me know about the lock down. This is an awesome project and I enjoy the community that's forming around it. |
@jocelo Are you still interested in working on this PR? |
@ErikSchierboom yeah, still interested... re-reading comments from Peter and myself above looks like the PR is no longer valid, so I think it should be closed, please let me know if you have any additional comments, otherwise I'll close it. |
I agree. I'll close. Thanks for creating the PR! |
Back at you! |
Adding 'delete' to the list of methods that the object should have; in the assertions the delete method is expected to be part of the object.