Estrutura de dados e Algoritmos Flashcards

1
Q

Com base no contexto apresentado, quanto à principal característica de uma lista encadeada simples, assinale a alternativa correta:

a) A inserção de novos elementos é sempre realizada no final da lista.

b) A busca por elementos na lista tem complexidade O(log n).

c) Cada elemento da lista contém um ponteiro para o próximo elemento na sequência.

d) Ela possui um tamanho fixo definido no momento da criação

A

c) Cada elemento da lista contém um ponteiro para o próximo elemento na sequência.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quanto ao princípio fundamental do algoritmo de ordenação QuickSort, assinale a alternativa correta:

a) Ordenação por inserção
b) Divide e conquista
c) Busca binária
d) Troca de elementos adjacentes.

A

b) Divide e conquista

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

No que descreve uma característica fundamental da estrutura de dados em árvore, assinale a alternativa correta:

a) As árvores são estruturas de dados estáticas, o que significa que não é possivel adicionar ou remover elementos após sua criação

b) Em uma árvore, cada elemento pode ter múltiplos prodecessores, o que permite uma organização complexa dos dados.

c) Na estrutura de árvore, um elemento especial chamado de “raiz” está no topo e não possui nenhum antecessor.

d) Uma árvore é uma estrutura de dados multilinear, onde cada elemento possui uma referência para o próximo na sequência.

A

c) Na estrutura de árvore, um elemento especial chamado de “raiz” está no topo e não possui nenhum antecessor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Após a exploração dessa estrutura, sobre a principal vantagem de uma lista duplamente encadeada em relação a uma lista encadeada simples, assinale a alternativa correta:

a) Diminuição da complexidade temporal ao buscar elementos

b) Utilização de menor quantidade de memória devido à presença de apenas um ponteiro por nó

c) Facilidade e rapidez na inserção e remoção de elementos em qualquer ponto da lista.

d) Simplificação na implementação de algoritmos de ordenação.

A

d) Simplificação na implementação de algoritmos de ordenação.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

include <stdio.h></stdio.h>

Quando uma variável precisa ser acessada em diferentes partes de um programa, os ponteiros desempenham um papel crucial. Nesse cenário, é comum encontrar vários ponteiros espalhados por várias seções do código, cada um apontando para a variável que contém os dados necessários. Uma vantagem significativa dessa abordagem é que, se esses dados forem modificados, não há preocupação, pois todos os ponteiros no programa estão apontando para o endereço onde os dados atualizados residem. Essa flexibilidade proporcionada pelos ponteiros é essencial para garantir a eficiência e a consistência na manipulação de dados em diferentes partes do código.

Considerando o uso de ponteiros em estruturas de dados, analise o seguinte código em C:

int main() {
int list[5] = {7, 8, 6, 4, 1};
int *pont = list;
printf(“%d\n”, *pont + 2);
printf(“%d\n”, *(pont + 2));
printf(“%d\n”, pont[2]);
printf(“%d\n”, pont++);
printf(“%d\n”, (
pont)++);
return 0;
}

Qual será a saída impressa ao executar este código?

a) 8-1-4-7-6
b) 9-6-6-7-8
c) 7-6-4-2-9
d) 9-6-8-4-1

A

Linha 1: printf(“%d\n”, *pont + 2);
pont é list[0], que é 7.
pont + 2 é 7 + 2 = 9.
Resultado: 9

Linha 2: printf(“%d\n”, *(pont + 2));
* pont ainda aponta para list[0].
* pont + 2 aponta para list[2], que é 6.
* (pont + 2) = 6.
Resultado: 6

Linha 3: printf(“%d\n”, pont[2]);
* pont[2] é equivalente a *(pont + 2), ainda é 6.
Resultado: 6

Linha 4: printf(“%d\n”, *pont++);
* Aqui temos o operador pont++, que usa o valor atual e depois incrementa o ponteiro.
* *pont (ainda list[0]) = 7, e depois pont passa a apontar para list[1].
Resultado: 7

Linha 5: printf(“%d\n”, (pont)++);
* pont agora aponta para list[1], que é 8.
* (
pont)++ retorna 8, mas depois incrementa o valor armazenado nesse endereço (pós-incremento).
* Então o valor impresso é 8, mas agora list[1] se torna 9 após o incremento.
Resultado: 8

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Quando estamos manipulando uma pilha, podemos empilhar ou desempilhar dados a qualquer momento, entretanto o que poderá acontecer se tentarmos desempilhar um elemento de uma pilha que esteja vazia?

a) Remove o elemento da pilha sem retornar qualquer valor.
b) Retorna NULL.
c) Retorna o último elemento que foi removido da pilha.
d) Apresenta uma mensagem de alerta de pilha vazia.

A

d) Apresenta uma mensagem de alerta de pilha vazia.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly