Abrir menu principal

Alterações

Ajustes
A forma como os ponteiros são usados em uma ED, seja explicitamente
(como em uma lista ligada) ou implicitamente (como em um vetor homogêneo),
evidencia suas propriedades, usos e operações.<ref name=Cormen>CORMEN, T. H.; LEISERSON, C.E.; RIVEST, R.L.; Algoritmos: Teoria e Prática. Editora Campus, Tradução da 2ª edição americana, 2002.</ref><ref name="dasgupta">Dasgupta, Sanjoy, Christos H. Papadimitriou, and Umesh Vazirani. Algorithms. McGraw-Hill, Inc., 2006.</ref><ref name="ziviani">ZIVIANI, N.; Projeto de Algoritmos com implementação em Java e C++. Editora Thomson, 1ª edição, 2006.</ref>.
Por exemplo, em uma estrutura ligada, em que cada elemento possui um (ou mais) ponteiro(s)
para outro(s) elemento(s), os valores podem assumir diferentes tipos e estruturas
 
=== Exemplo de discussão a respeito de ponteiros ===
É usual dizer que linguagens de alto nível, e.g. [[Python]],
não utilizam ponteiros.
No entanto, pode-se argumentar que mais fiel aos fatos é considerar que,
De forma a explicitar a pertinência da discussão, considere sistemas [[Unix]] (e.g. [[GNU/Linux]], [[BSD]], [[OSX]]) em
que os dados são representados basicamente como arquivos<ref>The art of Unix Programming</ref>: onde está o ponteiro?
o processamento é sequencial?
 
=== EDs na computação científica ===
<source lang="python">
# IPython3 com Python 3.5.2, 13/Mar/2018, Ubuntu 16.04
 
In [1]: ll = list(range(int(10e5)))
 
[[aprendizagem de máquina]]), são convenientes abstrações de conceitos e a [[POO]].
Ou seja, na programação científica como encontrada nas ciências naturais e
engenharias,
por exemplo, a [[POO]] está associada ao uso de técnicas e modelos
através dos TADs,
Destaque a este respeito deve ser dado aos aplicativos online para escrutinização
de EDs<ref name="dcUfscar">https://www.cs.usfca.edu/~galles/visualization/Algorithms.html</ref> e os vídeos em que operações, como de ordenação,
são dançadas ao acompanhamento musical.<ref>https://www.youtube.com/watch?v=lyZQPjUT5B4</ref><ref>https://www.youtube.com/watch?v=Xw2D9aJRBY4</ref><ref>https://www.youtube.com/watch?v=nK_o13c-0lk</ref>.
 
Na visualização dos dados, sejam eles e.g. módulos de componentes frequenciais (e.g. de [[transformada de Fourier|Fourier]])
ou valores cujo valor semântico é desconhecido,
é muitas vezes necessário utilizar escalas exponenciais/logarítmicas ou que sigam leis de potência<ref name=ubDes>Fabbri, R. Oliveira, O. N. O, "A simple model that explains why inequality is ubiquitous", 2017, disponível em: https://github.com/ttm/ubiquitousInequality/blob/master/plosOne/plos_latex_template.pdf</ref>
para que as estruturas possam ser audiovisualizadas informativamente.<ref name="nuvem2">Fabbri, R., Oliveira, M. C. F., Audiovisual Analytics of Social Linked Data", 2017, disponível em: https://github.com/ttm/aavo/raw/master/latex/nuvem/nuvem2.pdf</ref>.
De fato, a percepção humana e de outros animais utiliza lineariza estas escalas de modo a obter uma recepção de sinais informativa em um espectro/âmbito largo: ouvimos de forma útil desde um alfinete batendo no chão até um prédio implodindo, ouvimos frequências aproximadamente de 20Hz a 20kHz, enxergamos sob espectros igualmente generosos de intensidade e frequência).<ref>Physics and psychophysics of music. Roederer</ref>
 
no software Web em uso ou desenvolvimento,
este serve o HTML para o navegador carregar quando recebe
uma URL que especifica qual HTML deve entregar.
 
Neste contexto, descrito favorecendo protocolos e em detrimento à jargões da teoria,
é razoável supor que as rotinas a serem executadas pelo navegador, no cliente,
e.g. para poupar processamento no servidor ou para fins de interatividade,<ref name="aavo">< /ref><ref name="ontEnh">Fabbri, Renato. "Enhancements of linked data expressiveness for ontologies." arXiv preprint arXiv:1710.09952 (2017).</ref>,
serão escritas em [[Javascript]] com bibliotecas como {{ill|en|D3.js}}. Já as rotinas a serem executadas no servidor,
e.g. para elaborar o HTML a ser enviado, acessar bancos de dados e análises estatísticas,
 
* Uma [[ordenação (computação)|ordenação]], ou [[média]] ou [[desvio padrão]] ou padrão de [[regex]], é mais rápida no endpoint {{ill|en|SPARQL}} (e.g. {{ill|en|Jena (computação)|Jena (framework)}}, {{ill|en|Virtuoso (base de dados)|Virtuoso Universal Server}}, {{ill|en|RDFLib}}) ou no Python? Pode ser crucial decidir quais operações devem (ou podem) ser feitas no endpoint, no servidor e no cliente. Fatores:
** processamento no endpoint SparQL é confiável? Até que ponto? Jena e Virtuoso são considerados estáveis e confiáveis mas ao visitar o histórico das listas são encontrados erros grosseiros de interpretação de chamadas e variações entre os protocolos SPARQL oficial,<ref name="w3cSparql">https://www.w3.org/TR/rdf-sparql-query/</ref>, do Jena, Virtuoso e rdflib.<ref>lista jena</ref>.
** Quanto mais dado é enviado para o python (pelo endpoint SPARQL), mais trafego na rede é utilizada.
** Quanto mais dado é enviado pelo python (para o cliente em Javascript), mais trafego na rede é utilizada.
** Para relacionamentos entre dados, análises, audiovisuaizações e interfaces (DAAI<ref>link para figura</ref>)
** Para inferências de relações possíveis em DAAI.
 
No cliente em Javascript:
* [[desenho de grafos|layout das redes complexas]]
 
=== Taxonomia de EDs ===
Pode-se conceitualizar que,
na [[programação estruturada|PE]], as variáveis são chaves cujos valores são TDs.
enquanto na [[POO]] os valores são TDs ou TADs.
Estes TDs são em geral classificados como<ref name="Cormen">< /ref>:
ligados, quando um elemento possui um ou mais ponteiros para outros elementos;
lineares, quando os valores se sucedem em sequência;
 
=== Template para formalização de conhecimento sobre uma ED ===
Observada a literatura,<ref name="Cormen">< /ref><ref name="dasgupta">< /ref><ref name="ziviani">< /ref>,
um vocabulário sobre EDs pode seguir o seguinte padrão:
 
== Tópicos avançados ==
* EDs para processamento paralelo.
* Consideração da Máquina de Turing como ED genérica para paradigma atual de computação por transístores.<ref>https://www.quora.com/Is-there-a-theory-of-data-structures</ref>.
* Aprofundamentos sobre [[POO]] e EDs.<ref>http://www.cs.cornell.edu/people/kopylov/papers/thesis/thesis.pdf</ref>.
* Estudo minucioso de propriedades de EDs bastante utilizadas.
* Análise de novas EDs.
<br>
 
== {{VejaVer também}} ==
 
* [[Lista de estruturas de dados]]