Prefácio
Sobre os autores
Agradecimentos
Guia ITA
I Introdução
1
Preliminares
1.1
Motivação
1.2
Definições
1.2.1
Computação
1.2.2
Computador digital
1.2.3
Dado digital
1.2.4
Algoritmo
1.2.5
Programa de computador
1.2.6
Programação e linguagem de programação
1.2.7
Compilador
1.2.8
Interpretador
1.3
Considerações finais
II Programação
2
Introdução à programação
2.1
Breve histórico das linguagens de programação
2.2
Linguagem de alto nível
2.3
Primeiro programa
2.4
Sobre C++
2.5
Programação imperativa
2.5.1
Atribuição
2.5.2
Entrada e saída
3
Controle de fluxo
3.1
Comandos condicionais
3.2
Comandos de seleção
3.3
Comandos de repetição
3.4
Interrupções
3.5
Tratamento de erros e exceções
4
Entrada e saída
5
Sub-rotinas e recursão
5.1
Recursão
5.1.1
Busca binária
6
Tipos avançados
7
Memória e ponteiros
8
Complexidade computacional
8.1
Importância da análise de complexidade
III Estruturas de dados
9
Tipos abstratos de dados
10
Sequências
10.1
Listas
10.1.1
Modelo abstrato e operações em listas
10.1.2
Implementações de listas
10.1.3
Contíguo dinâmico
10.2
Iterador
10.3
Colônia
11
Adaptadores
12
Árvores
12.1
Árvores binárias
13
Estruturas associativas
13.1
Árvores Binárias de Busca
IV Algoritmos
14
Particionamento
15
Ordenação
15.1
Bubble sort
15.2
Shaker sort
15.3
Selection sort
15.4
Insertion sort
15.5
Shell sort
15.6
Quick sort
15.7
Merge sort
16
Busca
17
Operações de conjuntos em listas ordenadas
18
Operações de heap
19
Operações numéricas
Computando
4
Entrada e saída