Linked list vs. array dinâmico para implementar uma pilha

Comecei a revisar estruturas e algoritmos de dados antes do início do meu último ano escolar, para garantir que estou no topo de tudo. Um problema de revisão dizia: "Implemente uma pilha usando uma lista vinculada ou matriz dinâmica e explique por que você fez a melhor escolha"

Para mim, parecia mais intuitivo usar uma lista com um ponteiro de cauda para implementar uma pilha, pois ela pode precisar ser redimensionada com frequência. Parece que, para uma grande quantidade de dados, uma lista é a melhor escolha, pois um redimensionamento dinâmico de uma matriz é uma operação cara. Além disso, com uma lista, você não precisa alocar mais espaço do que realmente precisa, para que seja mais eficiente em termos de espaço.

No entanto, uma matriz dinâmica definitivamente permitiria adicionar dados muito mais rapidamente (exceto quando precisar ser redimensionado). No entanto, não tenho certeza se o uso de uma matriz é geralmente mais rápido ou apenas se não precisar ser redimensionad

A solução do livro dizia "para armazenar objetos muito grandes, uma lista é uma implementação melhor", mas não entendo o porqu

Qual é a melhor maneira? Quais fatores devem ser usados para determinar qual implementação é "melhor"? Além disso, existe alguma lógica minha aqui fora?

questionAnswers(5)

yourAnswerToTheQuestion