Linked lists if you need O(1) insertion at the beginning and tail(). If you don't care too much about space, you can use a doubly linked list (or, just use the xor trick).
Dynamic arrays if you need O(1) insertion at the end and random access.
Name:
Anonymous2011-04-07 21:13
The dynamic array has faster indexing - array to list, O(1) versus O(n) - but the linked list performs faster insertions at the front - array to list, O(n) versus O(1) - and insertions in the middle - array to list, search time + O(1) versus O(n). Some of these speed concerns can be mitigated by using a variant of a standard dynamic array.
As a general rule, your program should use whatever is the best implementation for your intentions.