Estruturas de Dados e Algoritmos

Ponteiros e alocação dinâmica. Tipos abstratos de dados: conceitos, operações, representações e manipulação. Lista (estática/dinâmica, encadeada/duplamente encadeada, circular), pilha, fila e fila priorizada, heap. Conjuntos e mapas. Representação de grafos (matriz de adjacência e de incidência). Representação de árvores. Árvores binárias e suas aplicações. Árvores B, AVL, rubro-negras. Tabelas de espalhamento (Hash). Complexidade de algorítmos. Medidas de complexidade de algorítmos. Algorítmos para grafos e outras estruturas de dados comuns. Tipos de algorítmos: algorítmos gulosos, programação dinâmica, divisão e conquista, etc.

Informações Básicas

Carga horária
60h.
Pré-requisito
Linguagens de Programação

Obrigatória: 

  • Kleinberg, J., & Éva Tardos. (2005). Algorithm Design. Addison Wesley;
  • Dasgupta, S., Papadimitriou, C. H., & Vazirani, U. V. (2008). Algorithms. McGraw-Hill;
  • Structure and Interpretation of Computer Programs. (1996). Structure and Interpretation of Computer Programs. MIT Press.

Complementar: 

  • Hetland, M. L.. (2002). Practical Python. Books for professionals by professionals The expert's voice in open source Apresspod Series Expert's Voice (648 p). Apress;
  • Celes, W. Cerqueira, R. Rangel, J. L.. (2004). Introdução a estruturas de dados: com técnicas de programação em C. (293 p). Campus;
  • Wirth, Niklaus.. (1999). Algoritmos e estruturas de dados. (255 p). LTC;
  • Edmonds, Jeff. (2010) Como pensar sobre algoritmos. (300 p). LTC;
  • Horowitz, Ellis. (1987) Fundamentos de estruturas de dados. (494 p). Campus.
A A A
High contrast