title: Linked list vs. dynamic array for implementing a stack
body: <p>I've started reviewing data structures and algorithms before my final year of school starts to make sure I'm on top of everything.  One review problem said "Implement a stack using a linked list or dynamic array and explain why you made the best choice".</p>
  
  <p>To me, it seemed more intuitive to use a list with a tail pointer to implement a stack since it may need to be resized often.  It seems like for a large amount of data, a list is the better choice since a dynamic array re-size is an expensive operation.  Additionally, with a list, you don't need to allocate any more space than you actually need so it's more space efficient.</p>
  
  <p>However, a dynamic array would definitely allow for adding data far quicker (except when it needs to be resized).  However, I'm not sure if using an array is overall quicker, or only if it doesn't need to be resized.</p>
  
  <p>The book's solution said "for storing very large objects, a list is a better implementation" but I don't understand why.</p>
  
  <p>Which way is best?  What factors should be used to determine which implementation is "best"?  Also, is any of my logic here off?</p>