Discussão do artigo "Do básico ao intermediário: Filas, Listas e Árvores (III)"

 

Novo artigo Do básico ao intermediário: Filas, Listas e Árvores (III) foi publicado:

Neste artigo iremos dar o que será o próximo passo a fim de implementar e entender o que seria e como funciona uma lista encadeada. Apesar do conteúdo aqui, ser de certa maneira bastante denso e confuso para quem está iniciando. Procurei deixar as coisas o mais didática possível. Assim, você conseguirá entender por que e quando usar uma lista encadeada.

Quando você usa a função de biblioteca do MQL5, chamada ArrayInsert, seu objetivo é o de inserir novos dados dentro de um array já existente. Até aí tudo certo. Porém esta função tem um pequeno detalhe: Quando inserimos novos dados no final do array já existente, os dados são simplesmente copiados para dentro do array. Algo equivalente ao de usar a função ArrayCopy.

Porém, toda via e, entretanto, quando queremos adicionar elementos no meio de um array já existente, ou no início deste mesmo array. Algo diferente acontece. Neste caso, a função ArrayInsert irá alocar um novo bloco de memória, logo depois irá copiar parte dos elementos para este novo bloco. Adicionar o que seria os novos elementos que estamos inserindo, no bloco recém alocado. Para somente depois, copiar o restante do array original, para dentro do bloco alocado. Com isto, se estivermos utilizando um array muito grande, podemos ter um tempo de execução um tanto quanto grande. Apesar de que com o atual barramento em placas mães modernas. Estes blocos que precisam ser movimentados, precisam realmente ser muito grandes para que você possa notar a diferença. Ou no mínimo, precisamos efetuar diversas inserções para que o tempo de processamento possa ser percebido.

No entanto, no começo da era dos computadores, a coisa não era tão rápida. O barramento era lento e estas movimentações, mesmo que com poucos elementos, demandava muito tempo. Assim engenheiros e acadêmicos criaram uma solução para o problema. E esta solução é justamente as listas. Agora vamos voltar a questão do código 01. Quando a lista está totalmente criada. O que iremos ter na memória é algo parecido com o que é visto logo abaixo.

Autor: CODE X