"Kent Johnson" <[EMAIL PROTECTED]> wrote

For example a linked list is pretty much a Python list.

Other than the very different timing characteristics!

True, but its pretty rare that timing issues are a reason for me to choose a data structure - especially if I need
to hand code it! :-)

Python lists are O(1) for reading or writing a value at an index, O(n) for inserting and deleting. Linked lists are O(n) for reading and writing and O(1) for insertion and deletion (at a known location).

I would say O(1) only if you already have a reference to that location (ie its known in that sense) but if you know that it's at position 23 but you only have a reference to the head you still need to navigate sequentially to the 23rd element so its still an O(n). O(1) only applies when inserting at the next position to where you currently are. That's not too common a scenario in my experience.

But the geneal point is a good specific example (and I was struggling to think of one!) where you might choose a non standard list over the vanilla version. The array module is another case where performance is improved over the standard lists.

Alan G.

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to