3 ms·
You do if you want your language to have a reusable Linked List data structure so that everyone doesn't have to re-implement their own version of it for each co
by deanCommie 5y ago
You do if you want your language to have a reusable Linked List data structure so that everyone doesn't have to re-implement their own version of it for each content type.
- silisili 5y agoThere are languages that do this already though. Use Python. Reusable everything, just wait for exceptions. I've spent time in C, Python, Go, Js, and some lesser known languages. I was really big into Python. Go seemed restrictive at first, but was immensely more safe and predictable.
- SamReidHughes 5y agoLinked lists are the one data structure that you never end up wanting a generic version of. They aren't really used as containers. (Except badly.)
- puddingforears 5y agoThey’re the easiest stack structure to implement. All your operations are against the head of the list and you either have a thing, don’t have a thing, or add a thing. I’d like to be able to maintain a stack of things whose types I don’t have to manually reify and erase. That’s not a tall order, and it’s certainly not “complexity”. It’s markedly weird that I can’t have that same structure and associated operations be usable regardless of the thing I’m working with.
- SamReidHughes 5y agoIf you want a stack you'll just use a growable array (in Go, a slice). A linked list is suboptimal. Linked lists serve a real purpose in some situations where you really do want O(1) behavior. One example is when you are performing the operation while holding a mutex. But it's never the sort of thing where the right tool is a linked list generic container.
- kroolik 5y agoI agree linked lists might be suboptimal for a stack implementation, but for a different reason: data locality. You can have O(1) stack with both implementations. Slice-based will be easier to follow, and will bust the cache less often (less pointer jumps).