Você está na página 1de 4

CURSO CIÊNCIA DA COMPUTAÇÃO

ESTRUTURAS DE DADOS

EXERCÍCIOS

1. Desenhe a evolução do conteúdo de uma pilha (incialmente vazia), considerando as seguintes sequências
de instruções:

a) Push(P,”a”); Push(P,”b”); Push(P,”c”); Pop(P); Pop(P);


b) Push(P,”a”); Push(P,”b”); Push(P,”c”); Pop(P); Push(P,”x”); Push(P,”y”); Pop(P);

2. São exemplos válidos do uso de pilhas:


( ) Quando um programa executa um módulo ou método recursivo, ele empilha cada uma das recursões e
desempilha cada uma delas à medida que as mesmas vão sendo terminadas.
( ) Um exemplo do uso de uma estrutura do tipo pilha está na impressão de documentos. Imagine que existem
vários computadores conectados a uma rede local, que enviam documentos a um servidor de impressão
(computador configurado com este serviço). Neste caso, os documentos enviados pelos demais computadores
chegam ao servidor de impressão e, conforme a política de uso de uma pilha, estes documentos são
impressos.
( ) A arquitetura TCP/IP usada pela Internet é um exemplo de pilha. Nela, várias camadas estão organizadas
de forma que uma camada usa o serviço da outra. Por isso, a arquitetura TCP/IP também é chamada de pilhas
de protocolos TCP/IP da Internet.
( ) O sistema operacional de uma máquina é o componente responsável pelo gerenciamento entre o hardware
e o software. Neste sentido, pode-se dizer que quando abrimos vários programas, os mesmos estão
empilhados na memória da máquina. É por isso que devemos finalizar um programa para poder usar outro, já
que devemos obedecer à política de acesso a programas conforme a pilha do sistema operacional.
Assinale a correta:
a) V, F, F, F
b) F, F, F, V
c) V, V, F, F
d) F, F, V, V
e) V, F, V, F

3. Sobre alocação dinâmica de memória é INCORRETO:


a) Sua grande limitação está no espaço alocado.
b) suas operações: inclusão, exclusão, consulta e atualização exigem mais do programador, já que as mesmas
devem ser bem projetadas de forma a garantir o funcionamento correto da estrutura.
c) É uma maneira de alocar memória.
d) Uma vantagem é a economia de espaço de memória.

4. As estruturas de dados lineares (fila, pilha e lista) são muito utilizadas para resolver problemas
computacionais. Cada uma dessas estruturas pode ser implementada com diferentes características e
atendem a diferentes tipos de problemas. Sobre as características dessas estruturas de dados, atribua V
(verdadeiro) ou F (falso) para as afirmativas a seguir.

( ) Em uma pilha, o último elemento a entrar é o primeiro a sair.


( ) Em uma fila, o primeiro elemento a entrar é o último a sair.
( ) Uma lista permite que as inserções possam ser feitas em qualquer lugar (posição), mas as remoções,
não.
( ) Em uma lista circular com encadeamento simples, o primeiro elemento aponta para o segundo e para
o último.
( ) Para remover um elemento de uma lista duplamente encadeada, deve-se alterar o encadeamento dos
elementos anterior e próximo ao elemento removido.

Assinale a alternativa que contém, de cima para baixo, a sequência correta.


a) V, F, V, F, V.
b) V, F, F, V, F.
c) V, F, F, F, V.
d) F, V, V, F, F.
e) F, F, V, V, V.

5. Um estudante de computação precisa resolver um problema bastante importante, que é executar as


operações que estão descritas abaixo, cuja estrutura é uma pilha. Tão logo ele retire algum elemento desta
pilha, estes deverão ser inseridos em uma fila, cuja entrada é pela esquerda e a saída, pela direita. Assinale a
alternativa que contém a sequência correta de entrada dos elementos na fila.
PUSH P
PUSH E
PUSH R
PUSH T
PUSH O
POP
POP
PUSH S
PUSH O
PUSH L
POP
POP
POP

a) S - O - L - T - O
b) O - T - R - E - P
c) P - E - R - T - O
d) O - T - L - O - S
e) P - O - R - L – S

6. Considere as estruturas de dados a seguir.


( ) Uma lista é um conjunto de dados onde cada elemento contido na lista ocupa sozinho uma posição de 1 até
n, onde n é a quantidade de elementos na lista. Uma inserção ou remoção pode ser realizada em qualquer
posição da lista.
( ) Uma fila é um caso especial de lista onde a inserção só pode ser realizada em uma extremidade e uma
remoção na outra.
( ) Uma pilha é um caso especial de lista onde uma inserção ou uma remoção só podem ser realizadas em
uma mesma extremidade.

Assinale a alternativa CORRETA:


a) V, V, F.
b) F, V, F.
c) V, F, F.
d) V, V, V.
e) F, F, F

7. As pilhas e as filas são estruturas de dados essenciais para os sistemas computacionais. Sobre elas é
correto afirmar que:

a) a fila é conhecida como lista LIFO - Last In First Out.


b) a pilha é conhecida como lista FIFO - First In First Out.
c) nas filas as operações de inserção e remoções devem ser realizadas na mesma extremidade.
d) tanto as pilhas como as filas são especializações de listas lineares. Listas lineares são chamadas de
conjuntos dinâmicos, uma vez que eles podem aumentar ou diminuir de acordo com a aplicação.

8. No desenvolvimento de um software que analisa bases de DNA, representadas pelas letras A, C, G, T,


utilizou-se as estruturas de dados: pilha e fila. Considere que, se uma sequência representa uma pilha, o topo
é o elemento mais à esquerda; e se uma sequência representa uma fila, a sua frente é o elemento mais à
esquerda. Analise o seguinte cenário: “a sequência inicial ficou armazenada na primeira estrutura de dados na
seguinte ordem: (A,G,T,C,A,G,T,T). Cada elemento foi retirado da primeira estrutura de dados e inserido na
segunda estrutura de dados, e a sequência ficou armazenada na seguinte ordem: (T,T,G,A,C,T,G,A).
Finalmente, cada elemento foi retirado da segunda estrutura de dados e inserido na terceira estrutura de dados
e a sequência ficou armazenada na seguinte ordem: (T,T,G,A,C,T,G,A)”.

Qual a única sequência de estruturas de dados apresentadas a seguir que pode ter sido usada no cenário
descrito acima?
a) Fila - Pilha - Fila.
b) Fila - Fila - Pilha.
c) Fila - Pilha - Pilha.
d) Pilha - Fila - Pilha.
e) Pilha - Pilha - Pilha.

9. Implemente as operações: insere e retira de uma fila. Sua implementação deve considerar alocação
dinâmica de memória e pode ser descrita usando pseudocódigo ou Java.

10. Implemente uma pilha de inteiros usando pseudocódigo ou Java através de alocação estática (usar um
vetor) de memória.

11. Implemente uma pilha usando pseudocódigo ou Java através de alocação dinâmica de memória.

12. Analise o código a seguir, que implementa uma operação de adição de um novo elemento em uma lista
duplamente encadeada.

Assinale a alternativa CORRETA.

a) O método adiciona, insere o somatório de todos os elementos ao final da lista.


b) O método adiciona, insere o valor de forma a garantir que a lista esteja sempre em ordem crescente.
c) O método adiciona sempre insere um valor na primeira posição da lista.
d) Há um erro na implementação do método adiciona, as atribuições necessárias para os campos anterior e
posterior do novo nodo estão invertidos.
e) O método adiciona não trata corretamente a inserção no caso da lista estar vazia.

13. Insira os dados de entrada (ver a seguir) numa fila. Em seguida retire cada dado da fila e insira numa pilha.
Mostre a pilha. Depois retire os dados da pilha e insira na fila. Mostre a fila.
Dados de entrada: 11, 12, 23, 14, 25, 50, 8, 18, 29, 10

As estruturas mostradas ficam:

I. Pilha: (topo) 10 - 29 - 18 - 8 - 50 - 25 - 14 - 23 - 12 - 11
II. Fila: (começo) 11 - 12 - 23 - 14 - 25 - 50 - 8 - 18 - 29 - 10 (fim)
III. Fila: (começo) 10 - 29 - 18 - 8 - 50 - 25 - 14 - 23 - 12 - 11 (fim)
IV. Pilha: (topo) 11 - 12 - 23 - 14 - 25 - 50 - 8 - 18 - 29 - 10
V. A fila mostrada fica com os elementos em ordem invertida dos dados de entrada

Assinale o item correto:


a) III e IV.
b) II e IV.
c) I, II e III.
d) I, III e V.
e) I, IV e V.

14. Escreva um método que receba como parâmetros duas listas (L1 e L2) e gere uma terceira lista (L3)
contendo somente os valores negativos.

15. Em relação às estruturas de dados lineares: listas, pilhas e filas, cite e explique o desempenho,
complexidade ou eficiência computacional das operações apresentadas abaixo. Use a notação big “O” para
expressar a eficiência. Considere, também, o pior dos cenários.

a) Lista ligada ou encadeada, operação de inserção no início.


Complexidade computacional: ______________________________________________
Explicação: _____________________________________________________________
b) Lista implementada através de vetor, operação de pesquisa.
Complexidade computacional: ______________________________________________
Explicação: _____________________________________________________________
c) Fila implementada através de memória dinâmica, operação de inserção no final.
Complexidade computacional: ______________________________________________
Explicação: _____________________________________________________________

Você também pode gostar