Logo Passei Direto
Buscar

Exercícios Estruturas de Dados

User badge image
Studbig

em

Ferramentas de estudo

Mês do Cliente Passei Direto

Quer receber 70% de desconto para assinar o PasseIA?

Questões resolvidas

Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

Prévia do material em texto

Lista de Exercícios - Análise e Desenvolvimento de
Sistemas
Disciplina: Estruturas de Dados e Algoritmos
Tema: Arrays, Pilhas, Filas, Árvores e Notação Big-O
Questão 1
Qual a diferença comportamental fundamental entre uma estrutura de dados do tipo Pilha (Stack) e uma
Fila (Queue)?
Na Pilha, as inserções e remoções ocorrem em extremidades opostas (FIFO), enquanto na Fila
ocorrem na mesma extremidade (LIFO).
Na Pilha, o último elemento inserido é o primeiro a ser removido (LIFO). Na Fila, o primeiro elemento
inserido é o primeiro a ser removido (FIFO).
Pilhas só armazenam tipos primitivos, enquanto Filas armazenam apenas objetos dinâmicos.
Não há diferença algorítmica, ambas processam dados aleatoriamente baseando-se em funções de
Hash.
Questão 2
Ao analisar a complexidade de tempo de um algoritmo usando a notação Big-O (Assintótica), o que
significa um algoritmo ser classificado como O(1)?
Significa que o algoritmo leva exatamente 1 segundo para ser executado.
Significa que o algoritmo só consegue processar 1 elemento de cada vez.
Significa que é um algoritmo de complexidade Constante: o tempo de execução não aumenta,
independente do crescimento da quantidade de dados (tamanho de entrada 'n').
Significa que é um algoritmo de complexidade Linear: o tempo cresce proporcionalmente ao tamanho
da entrada.
A. 
B. 
C. 
D. 
A. 
B. 
C. 
D. 
Questão 3
Considerando o armazenamento de dados em um Array padrão (Vetor tradicional em Java ou C) versus
uma Lista Encadeada (Linked List), assinale a correta:
Arrays armazenam dados em blocos contíguos de memória, permitindo acesso direto O(1) pelo
índice. Listas Encadeadas armazenam nós dispersos ligados por ponteiros.
Listas Encadeadas possuem tamanho estático definido na compilação, enquanto Arrays crescem
infinitamente sem necessidade de realocação.
Arrays sofrem com atrasos na leitura de dados no meio da estrutura em comparação com as Listas
Encadeadas.
Em Listas Encadeadas, para acessar o 100º elemento, basta acessar o índice [99] diretamente sem
percorrer os elementos anteriores.
Questão 4
Uma Árvore Binária de Busca (Binary Search Tree - BST) possui uma propriedade específica que
otimiza a busca de dados. Qual é essa propriedade?
A raiz sempre contém o maior valor da árvore.
Para cada nó, todos os elementos em sua subárvore esquerda são menores que o nó, e todos na
subárvore direita são maiores que o nó.
Cada nó pai deve possuir exatamente 3 filhos para balancear a memória.
Os nós folha (leaf) são conectados entre si formando uma fila circular bidirecional.
Questão 5
O algoritmo de ordenação Quick Sort é conhecido por sua eficiência prática. Qual é a estratégia
principal (paradigma) utilizada por ele?
Programação Dinâmica (Memorização de resultados anteriores).
Divisão e Conquista (Divide and Conquer), particionando o array ao redor de um elemento pivô.
Força Bruta (Brute Force), comparando cada elemento repetidas vezes.
Algoritmo Guloso (Greedy), escolhendo sempre o vizinho mais próximo.
Gabarito Comentado (Para Conferência)
1. Resposta: B. Pilha (Stack) = LIFO (Last In, First Out), como uma pilha de pratos reais. Fila (Queue)
= FIFO (First In, First Out), como uma fila de banco, quem chega primeiro é atendido primeiro.
A. 
B. 
C. 
D. 
A. 
B. 
C. 
D. 
A. 
B. 
C. 
D. 
2. Resposta: C. A complexidade O(1) indica eficiência máxima em relação ao tempo. Um exemplo de
O(1) é acessar um elemento de um array diretamente pelo índice `array[5]`, independentemente se o
array tem 10 ou 1 milhão de itens.
3. Resposta: A. Os Arrays ocupam um bloco de memória contíguo e têm tamanho fixo na criação, o
que os torna muito rápidos para leituras. As Listas Encadeadas alocam memória sob demanda via nós
e ponteiros, sendo mais flexíveis para inserções/remoções, mas exigem travessia O(n) para busca.
4. Resposta: B. A propriedade da BST é o que permite fazer buscas com complexidade logarítmica
O(log n) em média, pois a cada passo o algoritmo descarta metade da árvore, funcionando como uma
busca binária.
5. Resposta: B. O Quick Sort divide o problema escolhendo um 'pivô', agrupando elementos menores
à esquerda e maiores à direita, e resolvendo as partições recursivamente. É um dos algoritmos de
ordenação mais rápidos no mundo real.
	Lista de Exercícios - Análise e Desenvolvimento de Sistemas
	Questão 1
	Questão 2
	Questão 3
	Questão 4
	Questão 5
	Gabarito Comentado (Para Conferência)

Mais conteúdos dessa disciplina