Partilhar

Desconto: 20%
24,68 € 30,85 €

Detalhes do Produto

Sinopse

Esta obra tem como objectivo fornecer uma competência sólida no desenvolvimento de programas de média e elevada complexidade e um conhecimento profundo sobre estruturas de dados avançadas e algoritmos complexos, usando a linguagem de programação C e aplicando o paradigma da programação modular. Assim, utiliza uma metodologia que dá particular ênfase à decomposição funcional das soluções, através da implementação de tipos abstractos de dados. Para atingir este objectivo, ela está organizada em quatro grandes temas:

• O estudo das principais estruturas de dados dinâmicas, sendo apresentados os algoritmos de pesquisa, inserção e remoção, das listas simplesmente ligadas (singly linked lists), das listas duplamente ligadas (doubly linked lists), das listas ligadas com atalhos (skip lists), das árvores binárias de pesquisa (binary search trees), das árvores equilibradas em altura (height balanced trees) e dos amontoados binários (binary heaps);

• O estudo das principais classes de algoritmos, tendo em consideração a sua complexidade. São apresentados, nomeadamente, algoritmos recursivos importantes, incluindo a exploração de soluções com retrocesso (backtracking), algoritmos de pesquisa (sequencial, binária, ternária, por interpolação e por dispersão), algoritmos de selecção (maior valor, menor valor, K-ésimo menor valor) e algoritmos de ordenação (por selecção, por troca, por inserção, por fusão e por separação);

• O estudo da implementação dos diferentes tipos de memórias, designadamente, da memória de acesso aleatório (Random Access Memory), da memória fila (Queue), da memória pilha (Stack), da memória associativa (Content Access Memory) e da memória fila com prioridade (Priority Queue), e dos algoritmos associados para pesquisa, inserção e remoção de informação;

• O estudo do tipo abstracto de dados grafo (Graph), com especial destaque para a implementação dinâmica baseada em listas ligadas, e dos seus algoritmos mais importantes, como sejam, as travessias em largura e em profundidade, a ordenação topológica, a detecção de componentes fortemente conexas, a determinação de caminhos mais curtos (Dijkstra) e a geração da árvore abrangente de custo mínimo (Prim e Kruskal).

Ler mais

Autor

António Adrego da Rocha

Professor Auxiliar no Departamento de Electrónica, Telecomunicações e Informática da Universidade de Aveiro.

Ler mais