Eu acho que você não deve aceitar não entender essas coisas, porque elas são realmente fundamentais. Dito isto, você não os entende não é nada para se sentir mal. Você pode explicar uma lista vinculada a um filho. Portanto, se o seu professor falhou em explicá-las para você, a culpa é sua. Portanto, você não deve gastar tempo se preocupando, mas tente encontrar pessoas que possam explicar isso a você. Muitas vezes, um colega é um professor muito melhor do que um acadêmico em período integral.
Pense em trens
Imagine, você tem um conjunto de vagões ferroviários, em que cada vagão tem capacidade suficiente, para conter um dado. Cada carro possui algum tipo de gancho no final, que pode ser anexado à frente de outro carro.
Na verdade, isso fornece uma lista vinculada:
- a lista vazia: o trem que não contém vagões (e, portanto, sem dados)
- adicionando um elemento: adicione um novo carro contendo o elemento na frente do trem e conecte-o ao restante do trem
- removendo um elemento: encontre o carro que contém o elemento. Remova-o (você pode precisar de um guindaste aqui :)), prenda o carro antes com o carro depois.
- substituindo um elemento: encontre o carro que contém o elemento antigo. Troque o elemento antigo pelo novo elemento.
- Inserir um elemento logo após o outro: encontre o carro que contém o elemento após o qual deseja inserir. Insira um novo carro depois dele, que seja enganchado de acordo (não queremos que o trem desmorone) e coloque o novo elemento nele.
Em contraste com isso, você pode pensar em uma matriz como um trem com um determinado número de vagões, que não pode ser reorganizado de nenhuma maneira. Tudo o que você pode fazer é alterar os dados dentro deles. Este modelo também explica muitos dos problemas que as matrizes têm:
- Se você deseja inserir um elemento antes de outro, precisará mover todos os seguintes elementos para o próximo carro.
- Se você deseja remover um elemento, será necessário mover todos os seguintes elementos de um carro para a frente.
- Se você precisar de um trem com mais vagões, terá que construir um novo, porque não pode simplesmente acrescentar um vagão. Por outro lado, encontrar carruagens em uma matriz é muito mais fácil, porque você pode simplesmente numerá-las permanentemente (a ordem delas nunca muda).
Quanto à pilha: Uma "pilha" é menos uma estrutura de dados do que uma ideia. A idéia da pilha é que ela age como uma pilha de livros. Você só pode colocar livros no topo da pilha e apenas tirar o livro de cima da pilha (pelo menos se os livros forem suficientemente pesados).
Dito isto, uma lista vinculada pode ser usada como uma pilha, se você considerar os dados nos carros como livros e o livro no primeiro carro como o topo da pilha.
Então, espero que isso tenha ajudado. Talvez não. Talvez você seja mais do tipo visual. Nesse caso, sugiro que você encontre alguém que seja bom em dar explicações visuais e explique a você. Não vai demorar muito, mas valerá a pena.
Não há problema em lutar com isso agora. Mas apenas aceitá-lo, não é uma opção a longo prazo.