Instituto Federal de Sergipe

Guia de Estudos - Estrutura de Dados I

Monitor: José Gustavo Correia Nascimento

Orientador: Prof. Jose Solenir Lima Figueredo

Mapa de Assuntos & Gotchas

Questões 1 a 3

Recursividade

O uso da pilha de chamadas (stack) para decompor problemas complexos em casos base e passos recursivos.

GOTCHA DE MONITORIA

Cuidado com a condição de parada! Se ela for inalcançável, você terá um StackOverflowError. Sempre garanta que o estado da variável mude em direção ao caso base.

Questões 4 a 9

Array Primitivo vs ArrayList

Comparação entre alocação estática (memória fixa) e o redimensionamento dinâmico da API Java Collections.

GOTCHA DE MONITORIA

Arrays primitivos são blocos contíguos de tamanho fixo. No ArrayList, inserir ou remover no índice 0 exige um shift de O(n) em todos os outros elementos.

Questões 10 a 12

Generics & Type Safety

Parametrização de tipos para evitar castings explícitos e erros de tempo de execução.

GOTCHA DE MONITORIA

Lembre-se do Type Erasure: o Java remove as informações de tipo genérico em tempo de execução. O compilador usa o Generics apenas para garantir segurança ANTES de rodar.

Questões 13 a 15

Listas Simples Encadeadas

Estruturas onde cada nó conhece apenas o seu sucessor, permitindo alocação dinâmica não-contígua.

GOTCHA DE MONITORIA

O maior risco é perder a referência da cabeça (head). Se você atualizar o ponteiro head sem salvar o próximo, você causará um NullPointerException e perderá toda a lista.

Questões 16 a 18

Listas Duplamente Encadeadas

Uso de ponteiros bi-direcionais (prev/next) e nós sentinelas para navegação fluida em ambos os sentidos.

GOTCHA DE MONITORIA

Ao inserir no meio, você precisa atualizar 4 ponteiros. A ordem dessas atribuições é crítica: se você desconectar um nó antes de salvar seu vizinho, a lista será quebrada.

Questões 19 a 24

Listas Circulares

Estruturas onde o último nó aponta de volta para o primeiro, eliminando o valor nulo do final da lista.

GOTCHA DE MONITORIA

Loops infinitos! Como não há null, o loop while(atual != null) nunca para. Use uma referência inicial (ex: head) e pare quando atual.proximo == head.

Como usar IA para aprender (e não copiar)

Integrando Inteligência Artificial no seu fluxo de estudos de forma ética e eficiente.

Depuração Ativa

Cole o erro (stacktrace) e pergunte: "Por que este erro acontece nesta linha?". Não peça o código corrigido, peça a explicação.

Casos de Teste

Peça: "Gere 5 cenários de teste para uma inserção em lista circular, incluindo casos de borda como lista vazia ou com um elemento".

NotebookLM

Suba os PDFs das aulas do Prof. Solenir no NotebookLM para tirar dúvidas conceituais antes de começar a codificar.

Método Socrático

Instrua a IA: "Atue como meu professor de ED1. Não me dê a resposta, faça perguntas que me ajudem a chegar na lógica da busca binária".