Sumário do livro
Eis o sumário do livro Algoritmos em Linguagem C:
  
- 
Capítulo 1   Documentação e invariantes
- 1.1   Exemplo de documentação
- 1.2   Invariantes
 
- 
Capítulo 2   Recursão
- 2.1   Algoritmos recursivos
- 2.2   Um exemplo: o problema do máximo
- 2.3   Outra solução recursiva do problema
 
- 
Capítulo 3   Vetores
- 3.1   Busca
- 3.2   Busca recursiva
- 3.3   Remoção
- 3.4   Inserção
- 3.5   Busca seguida de remoção
 
- 
Capítulo 4   Listas encadeadas
- 4.1   Definição
- 4.2   Listas com cabeça e sem cabeça
- 4.3   Busca em lista encadeada
- 4.4   Remoção de uma célula
- 4.5   Inserção de nova célula
- 4.6   Busca seguida de remoção ou inserção
- 4.7   Manipulação de listas
- 4.8   Outros tipos de listas encadeadas
 
- 
Capítulo 5   Filas
- 5.1   Implementação em vetor
- 5.2   Aplicação: distâncias em uma rede
- 5.3   Implementação circular
- 5.4   Implementação em lista encadeada
 
- 
Capítulo 6   Pilhas
- 6.1   Implementação em vetor
- 6.2   Aplicação: parênteses e colchetes
- 6.3   Aplicação: notação posfixa
- 6.4   Implementação em lista encadeada
- 6.5   A pilha de execução de um programa
 
- 
Capítulo 7   Busca em vetor ordenado
- 7.1   O problema
- 7.2   Busca seqüencial
- 7.3   Busca binária
- 7.4   Prova da correção do algoritmo
- 7.5   Desempenho do algoritmo
- 7.6   Variantes do código
- 7.7   Versão recursiva da busca binária
- 7.8   Variações sobre o tema
 
- 
Capítulo 8   Ordenação: algoritmos elementares
- 8.1   O problema da ordenação
- 8.2   Algoritmo de inserção
- 8.3   Algoritmo de seleção
- 8.4   Ordenação de strings e listas
- 8.5   Ordenação estável
 
- 
Capítulo 9   Ordenação: algoritmo Mergesort
- 9.1   Intercalação de vetores ordenados
- 9.2   O algoritmo Mergesort
- 9.3   Desempenho do algoritmo
- 9.4   Versão iterativa
 
- 
Capítulo 10   Ordenação: algoritmo Heapsort
- 10.1   Heap
- 10.2   Inserção em um heap
- 10.3   Um algoritmo auxiliar
- 10.4   O algoritmo Heapsort
- 10.5   Desempenho do algoritmo
 
- 
Capítulo 11   Ordenação: algoritmo Quicksort
- 11.1   O problema da separação
- 11.2   Algoritmo da separação
- 11.3   Algoritmo Quicksort básico
- 11.4   Desempenho do algoritmo
- 11.5   Altura da pilha de execução do Quicksort
 
- 
Capítulo 12   Algoritmos de enumeração
- 12.1   Enumeração de subseqüências
- 12.2   Subseqüências em ordem lexicográfica
- 12.3   Versão recursiva do algoritmo
- 12.4   Subseqüências em ordem lexicográfica especial
 
- 
Capítulo 13   Busca de palavras em um texto
- 13.1   O problema da busca
- 13.2   Algoritmo trivial
- 13.3   Primeiro algoritmo de Boyer--Moore
- 13.4   Segundo algoritmo de Boyer--Moore
- 13.5   Terceiro algoritmo de Boyer--Moore
 
- 
Capítulo 14   Árvores binárias
- 14.1   Definição
- 14.2   Varredura esquerda-raiz-direita
- 14.3   Altura
- 14.4   Nós com campo pai
- 14.5   Nó seguinte
 
- 
Capítulo 15   Árvores binárias de busca
- 15.1   Definição
- 15.2   Busca
- 15.3   Inserção
- 15.4   Remoção
- 15.5   Desempenho dos algoritmos
  
 
- 
Apêndice A   Leiaute
- A.1   Um bom leiaute
- A.2   Mau exemplo
- A.3   Sugestões
- A.4   Código enfeitado
 
- 
Apêndice B   Caracteres
- B.1   Representação gráfica dos caracteres
- B.2   Constantes e brancos
- B.3   Operações aritméticas
 
- 
Apêndice C   Números naturais e números inteiros
- C.1   Representação de números naturais
- C.2   Representação de números inteiros
- C.3   Aritmética int
- C.4   Representação por seqüências de caracteres
 
- 
Apêndice D   Endereços e ponteiros
- D.1   Endereços
- D.2   Ponteiros
- D.3   Uma aplicação
- D.4   Vetores e endereços
 
- 
Apêndice E   Registros e structs
- E.1   Definição e manipulação de structs
- E.2   Ponteiros para structs
 
- 
Apêndice F   Alocação dinâmica de memória
- F.1   Função malloc
- F.2   A memória é finita
- F.3   Função free
- F.4   Vetores e matrizes
 
- 
Apêndice G   Strings
- G.1   Strings constantes
- G.2   A biblioteca string
- G.3   Ordem lexicográfica e a função strcmp
 
- 
Apêndice H   Entrada e saída
- H.1   Tela e teclado: printf e scanf
- H.2   Arquivos
- H.3   As funções putc e getc
- H.4   Argumentos na linha de comando
 
- 
Apêndice I   Números aleatórios
- I.1   A função rand
- I.2   Inteiros aleatórios
- I.3   Sementes
 
- 
Apêndice J   Miscelânea
- J.1   Valor de uma expressão
- J.2   Valor de uma expressão booleana
- J.3   Tipos de dados e typedef
- J.4   Include e define
- J.5   Precedência entre operadores em C
 
- 
Apêndice K   Arquivos-interface de bibliotecas C
- K.1   Amostra do arquivo stdlib.h
- K.2   Amostra do arquivo stdio.h
- K.3   Amostra do arquivo math.h
- K.4   Amostra do arquivo string.h
- K.5   Amostra do arquivo limits.h
- K.6   Amostra do arquivo time.h
 
- 
Apêndice L   Soluções de alguns exercícios
 
 
- 
Bibliografia
- 
Termos técnicos em inglês
- 
Índice remissivo