Buscar

aula-00-estrutura-de-dados-tre-to-tecnico

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 74 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 74 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 74 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
AULA 00
Programação 
Estrutura de Dados e Algoritmos
Professor Pedro Henrique Chagas Freitas
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
2
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Tópicos da Aula
Introdução a Estrutura de Dados...........................................................3
Vetores e Matrizes................................................................................10
Lista Encadeada Linear.........................................................................14
Filas......................................................................................................24
Pilhas...................................................................................................29
Árvores.................................................................................................33
Lista das Questões Comentadas na Aula..............................................41
Bibliografia...........................................................................................61
Lista das Questões Apresentadas na Aula............................................62
Gabarito...............................................................................................72
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
3
Aula 00 – Estrutura de Dados
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Introdução a Estrutura de Dados
Vamos lá! Começaremos definindo afinal de contas o que é uma estrutura de
dados e por que estudamos estrutura de dados. Para você compreender bem o
conceito de estrutura de dados, precisamos entender o conceito de algoritmo
como um processo sistemático. Ok?
Algoritmo como um Processo Sistemático
Um algoritmo é um processo sistemático para computar um resultado a
partir de dados de entrada. Temos então que um algoritmo precisa tratar de
argumentos de forma lógica a fim de que possamos tirar conclusões. 
Então como vamos representar esse processo sistemático de maneira
computacional? Precisamos criar alguma organização a fim de operar os nossos
dados de entrada e saída, correto?
Nasce então o que conhecemos por Estrutura de Dados
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
4
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Professor defina estrutura de dados? Estrutura de dados é a maneira pela qual
organizamos os dados a fim de operar sobre eles. 
Exemplo de duas estruturas de dados (Fila e Pilha):
Perceba então que ao reunir estruturas de dados (que organizam os dados) e
algoritmos eu posso criar programas de computador. Logo: estrutura de
dados + algoritmos = programas. Ok? 
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
5
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Quando desejamos projetar ou implementar uma estrutura de dados,
precisamos de: 
1) Uma modelagem abstrata dos objetos a serem manipulados e das
operações sobre eles. 
2) Uma modelagem concreta do tipos Abstratos de Dados (TAD – Abstract
Data Type).
O que é um TAD? TAD (Tipos Abstratos de Dados) é um modelo matemático
que visa representar um conjunto de operações sobre um conjunto de
valores. Um TAD é normalmente representado através de um especificação
algébrica que contém três partes: Semântica, Sintática e Restrições.
Temos então que a especificação Semântica trata do comportamento de um
tipo abstrato de dados, enquanto o nível sintático define a apresentação
de um tipo abstrato de dados, através da definição do nome do tipo, suas
operações e seus argumentos. 
As restrições como o próprio nome diz, são responsáveis por estabelecer
condições para a aplicação das operações. Ok? Temos então que o TAD é
responsável por encapsular as estruturas de dados com características
semelhantes. 
Podemos perceber que ao estudar estrutura de dados, nos preocupamos muito
em como nossos dados serão armazenados e manipulados e isso passa
diretamento pelo bendito “dado”. 
Temos então dois conceitos interessantes para trabalhar com dados dentro de 
estrutura de dados, temos os dados homogêneos e os dados heterogêneos.
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
6
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Os vetores por exemplo são estruturas de dados que trabalham somente com
os dados homogêneos. Vetores representam estruturas nas quais todos os
elementos são do mesmo tipo.
Existem também estruturas de dados que trabalham com dados
heterogêneos, como as Listas que apresentam todos os seus elementos de
tipos diferentes básicamente.
Temos também dois tipos de estruturas dentro do universo das estruturas de
dados: Estruturas Lineares e não Lineares. As Estruturas Lineares são
estruturas em que cada elemento pode ter um único predecessor,
menos o primeiro elemento obviamente e um único sucessor, menos é claro o
último elemento. São elas as Pilhas, Arranjos, Filas e Listas, dentre outros.
As Estruturas não lineares apresentam cada elemento podendo ter mais de
um predecessor ou sucessor. Por exemplo: Os Grafos e as Árvores, dentre
outras. 
Dados Homogêneos: Só um tipo básico de dados (Inteiros)
Dados Heterogêneos: São dados que possuem mais de um tipo básico de
dados (Caracteres e Inteiros).
Estruturas Lineares: Estruturas em que cada elemento pode ter um único
predecessor (Pilhas, Arranjos, Filas e Listas).
Estruturas não Lineares: Apresentam cada elemento podendo ter mais de um
predecessor ou sucessor (Grafos e as Árvores). 
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
Dados homogêneos são aqueles que possuem só
um tipo básico de dados (Inteiros). 
Dados heterogêneos são dados que possuem
mais de um tipo básico de dados (Ex: Caracteres
e Inteiros).
7
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Perceba que quando tratamos de algum tipo de estrutura de dados, exemplo:
“Listas”, nós estamos tratando de um tipo abstrato de dados que tem
comportamentos definidos. Ok?
Temos então operações associadas a cada tipo de estrutura de dados, e
essas operações são independentes de qualquer tipo de linguagem de
programação ou paradigma, logo não importa se implementamos uma Lista,
Pilha ou Fila com paradigma estruturado ou com paradigma orientado a objeto. 
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
8
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
1. (CESPE – 2010 – TRT/RN - Analista de Sistemas) O tipo abstrato
de dados consiste em um modelo matemático (v,o) em que v é um
conjunto de valores e o é um conjunto de operações que podem ser
realizadas sobre valores.
Comentários:
Perfeito! Vamos a definição: O que é um TAD? TAD (Tipos Abstratos de Dados)
é um modelo matemático que visa representar um conjunto de operações
sobre um conjunto de valores. Um TAD é normalmente representado através
de um especificação algébrica que contém três parte: Semântica, Sintática e
Restrições.
Note que aqui temos essa designação de operações representada por (o) e de
valores representado por (v). 
Gabarito: Correto
2. (FCC – 2010– TRE/AM –AnalistaJudiciário – Tecnologia da
Informação) Em relação aos tipos abstratos de dados (TAD) é correto
afirmar:
a) O TAD não encapsula a estrutura de dados para permitir que os usuários
possam ter acesso a todas as operações sobre esses dados.
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
9
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
b) Na transferência de dados de uma pilha para outra, não é necessário
saber como a pilha é efetivamente implementada.
c) Alterações na implementação de um TAD implicam em alterações em seu
uso.
d) Um programador pode alterar os dados armazenados, mesmo que não
tenha conhecimento de sua implementação.
e) TAD é um tipo de dados que esconde a sua implementação de quem o
manipula. 
Comentários: 
Temos então que o TAD é responsável por encapsular estrutura de dados
com características semelhantes. Esconder a implementação e encapsular a
implementação são duas formas de dizer a mesma coisa. 
Gabarito: Letra E
3. (FGV – 2015–DPE/MT – Analista de Sistemas) No desenvolvimento
de sistemas, a escolha de estruturas de dados em memória é
especialmente relevante. Dentre outras classificações, é possível
agrupar essas estruturas em lineares e não lineares, conforme a
quantidade de sucessores e antecessores que os elementos das
estruturas possam ter.
Comentários: 
Como vimos na aula: 
Temos também dois tipos de estruturas dentro do universo das estruturas de
dados: Estruturas Lineares e não Lineares. As Estruturas Lineares são
estruturas que cada elemento pode ter um único predecessor, menos o
primeiro elemento obviamente e um único sucessor, menos é claro o último
elemento. São elas as Pilhas, Arranjos, Filas e Listas, dentre outros.
As Estruturas não lineares apresentam cada elemento podendo ter mais de
um predecessor ou sucessor. Por exemplo: Os Grafos e as Árvores, dentre
outras. 
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
10
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Gabarito: Correto
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
11
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Vetores e Matrizes
Vamos então compreender o que são essas estruturas de dados, definidas como
Matrizes e Vetores. Primeiro o que é um Vetor? 
Na matemática (essa linda ciência) um vetor é a representação através de
setas, cujas coordenadas correspondem ao um ponto específico: u = (2,2) e v
= (4,2), indicando também sentido, direção e intensidade. Ok?
Aqui no mundo computacional também temos vetores, eles são representados
como estruturas de dados homogêneas, armazenando somente uma lista de
valores do mesmo tipo, podendo ser estático ou dinâmico. 
Professor e o que é uma matriz? 
Matriz é um arranjo que visa representar um conjunto numérico, com linhas e
colunas agrupadas (mxn). Logo temos na computação a representação de uma
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
12
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
matriz como um arranjo bidimensional ou multidimensional de alocação
estática e seqüencial. 
Note que uma matriz pode ser considerada então um vetor com mais de uma
dimensão com todos os elementos compondo o mesmo tipo de dados. 
Vejamos o exemplo então de um vetor “a” com 8 posições: int Vetor [8]; 
Vejamos uma matriz com 3 linhas e 4 colunas: int Matriz [3][4];
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
Em uma matriz todos os elementos são do mesmo
tipo, com cada célula contendo somente um valor,
os elementos dentro de uma matriz podem ser
alocados linha por linha ou coluna por coluna.
13
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
4. (CESPE – 2011 – Empresa Brasileira de Comunicação – Analista
de Tecnologia da Informação) Vetores são utilizados quando
estruturas indexadas necessitam de mais que um índice para identificar
um de seus elementos.
Comentários:
Vetores necessitam apenas de um índice, quando precisamos de mais de um
índice para identificação de elementos, estamos tratando de matrizes. 
Gabarito: Errado
5. (CESPE – 2010 – TER-BA – Analista Judiciário – Área: Sistemas)
Uma posição específica de um vetor pode ser acessada diretamente por
meio de seu índice.
Comentários:
Sim. Um Vetor possibilita o acesso a qualquer elemento diretamente através do
índice, veremos inclusive que essa é uma das principais diferenças entre um
vetor e uma lista. Ok?
Gabarito: Correto
6. (EXATUS– 2015 – BANPARÁ– Técnico em Informática - C) Uma
matriz de x linhas e y colunas contêm (x*y) posições onde podem ser
armazenados dados.
Comentários:
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
14
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Correto. Note que uma matriz, por exemplo: (3,3) terá 3*3 posições = 9
posições. 
Gabarito: Correto
7. (CESPE – 2010 – Banco da Amazônia– Arquiteto de Tecnologia)
Os dados armazenados em uma estrutura do tipo matriz não podem ser
acessados de maneira aleatória. Portanto, usa-se normalmente uma
matriz quando o volume de inserção e remoção de dados é maior que o
volume de leitura dos elementos armazenados. 
Comentários:
Não existe essa limitação de que os dados não podem ser acessados de
maneira aleatória, através dos índices os dados podem ser acessados de forma
direta ou aleatória. 
Gabarito: Errado
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
15
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Lista Encadeada Linear
Vamos tratar agora sobre Lista Encadeada Linear ou apenas Lista Encadeada
para os mais íntimos, que nada mais é que uma estrutura de dados
dinâmica composta por uma sequência de elementos encadeados
conhecidos como nós, possuindo dois campos: campo endereço e campo
informação.
O campo endereço é utilizado para acessar o nó, que é o que formalmente
conhecemos no universo computacional de forma didática como ponteiro ou
apontamento. A lista então é acessada através do ponteiro que vai apontar
para o endereço do primeiro nó da lista através de uma variável ou por
referência.
Na lista o campo do endereço do último nó conterá um valor NULL, que
nada mais é que um endereço inválido. Essa indicação é utilizada a fim de
indicar o término ou final da lista. 
Uma lista pode ser inicializada como uma lista vazia e quando uma lista esta
vazia, ela é uma lista nula, ou seja, uma lista nula é uma lista que não tem
nós ou com apenas um nó. 
Exemplo:
O último nó também é conhecido como sentinela e esta designação também
pode ser utilizada para se referir ao primeiro elemento. Caso no último nó
tenhamos um ponteiro apontando para o primeiro nó, teremos o que é
conhecido como Lista fechada ou Lista circular. 
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
16
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Exemplo:
Uma lista circular não apresenta nem o primeiro nem o último nó, logo o
ponteiro deverá apontar para o último nó arbitrariamente e o nó seguinte será
estabelecido como o primeiro nó. 
Existe também a Lista duplamente encadeada, que surgiua fim de prover
uma travessia no sentido contrário entre os nós, perceba que a lista encadeada
linear e a lista circular permitem a travessia entre os nós em apenas uma
única direção, para solucionar esse problema as lista duplamente encadeadas
utilizam o apontamento do ponteiro no primeiro elemento para o último
elemento e o ponteiro seguinte do último para o primeiro elemento.
Vamos desenhar que fica mais simples: 
Note que aqui cada nó terá dois ponteiros, um para o nó anterior e um para o
nó posterior. As listas duplamente encadeadas podem ser chamadas de listas
duplamente ligadas e podem ser lineares ou circulares.
Na lista duplamente encadeada os nós possuem três campos: INF
(Informação), Left e Right que contêm ponteiros para os nós de ambos os
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
17
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
lados. Perceba que o ponteiro do último elemento pode ser utilizado para
percorrer a lista em ordem inversa. 
Existem cinco operações que se aplicam a uma lista encadeada
Criação: A lista é criada em memória.
Busca: São pesquisados os nós na lista.
Inclusão: Novos nós são inseridos na lista.
Remoção: Nós existentes são retirados da lista.
Destruição: A lista é apagada.
Para resolver esse problema começamos a utilizar listas encadeadas porque elas
eliminam o problema da fragmentação, tendo em vista que cada elemento é
organizado de forma encadeada em memória, já que cada bloco tem um
ponteiro para o próximo bloco. 
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
Antes da estrutura de dados em forma de lista os
Sistemas Operacionais enfrentavam muitos
problemas com fragmentação que nada mais é que
desperdiçar espaço de memória entre alocações de
elementos em memória. 
18
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Uma lista percorre nó por nó a fim de acessar um dado. Note que
comparando com a estrutura de dados “vetor” temos no vetor acesso direto ao
dado, logo é possível acessar o dado sem percorrer nó por nó como na lista.
Ok?
8. (CESPE – 2016 – FUNPRESP– Analista de Tecnologia da
Informação) Uma estrutura de dados que possui três campos: dois
ponteiros e um campo de informação, denomina-se:
a) Lista encadeada dupla.
b) Lista encadeada simples.
c) Pilha
d) Fila
e) Vetor
Comentários:
Dois ponteiros e um campo informação:
Na lista duplamente encadeada os nós possuem três campos: INF
(Informação), Left e Right que contêm ponteiros para os nós de ambos os
lados.
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
Professor mais então Vetor e Lista são a mesma coisa? 
Qual a diferença entre um e o outro?
19
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Gabarito: Letra A
_________________________________________________________
9. (CESPE – 2012 – Banco da Amazônia– Administrador de Dados)
Estruturas ligadas como listas encadeadas superam a limitação das
matrizes que não podem alterar seu tamanho inicial.
Comentários: 
Listas encadeadas podem alocar seus elementos de maneira dinâmica alterando
assim seu tamanho, as matrizes não podem, elas respeitam seu tamanho inicial
implementado. 
Gabarito: Correto
10. (COSEAC– 2009– DATAPREV– Analista de Tecnologia da
Informação) Sobre listas encadeadas, é INCORRETO afirmar que:
a) Os dados são armazenados dinamicamente;
b) São acessadas pelo primeiro nodo da lista;
c) O final da lista faz uma referência para null;
d) Possuem tamanho fixo;
e) Pilhas e filas são versões limitadas de listas encadeadas;
Comentários:
Essa questão é muito interessante, porque ela resume bem as características de
uma lista encadeada. Uma lista encadeada os dados são armazenados
dinamicamente? Sim. Eles são acessados pelo primeiro nodo da lista? Sim. No
final da lista temos uma referência nula (null)? Sim. O tamanho de uma lista
encadeada é fixo? Claro que não e as pilhas e filas são versões limitadas de
listas encadeadas? Sim. 
Gabarito: Letra D
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
20
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
11. (VUNESP – 2014 – SP-URBANISMO – Analista
Administrativo) Tem-se uma estrutura de dados do tipo lista
encadeada com 10 elementos, em que o primeiro e o último elemento
estão ligados entre si. Trata-se de uma estrutura denominada Lista:
a) Binária
b) Balanceada
c) Invertida
d) Encadeada Circular
e) Duplamente Encadeada
Comentários:
Caso no último nó tenhamos um ponteiro apontando para o primeiro nó,
teremos o que é conhecido como Lista fechada ou Lista circular. 
Exemplo:
Gabarito: Letra D
12. (CESGRANRIO – 2014 – Banco da Amazônia – Analista de
Sistemas) Uma lista duplamente encadeada tem como característica
ser formada por elementos que
a) Se concatenam de forma circular, de tal maneira que, ao chegar ao final
da lista, o próximo elemento volta a ser o primeiro.
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
21
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
b) Contêm, além de um ou mais campos chave, mais um campo de ponteiro:
o próximo, que permite o acesso ao elemento que sucede o atual (o
próximo) presente na mesma lista.
c) Contêm, além de um campo chave, mais um campo de ponteiro: o
próximo, que permite o acesso ao elemento que sucede o atual (o
próximo) presente na mesma lista, de tal forma que os campos chave
estão ordenados, ou seja, a chave do próximo é sempre maior ou igual à
chave do atual elemento.
d) Contêm, além de um ou mais campos chave, dois outros campos de
ponteiros: próximo e anterior, que permitem o acesso aos elementos
adjacentes (próximo e anterior) presentes na mesma lista.
e) Estão em posições adjacentes da memória, permitindo o acesso
seqüencial ao próximo e ao anterior de cada elemento pelo simples uso
de um índice.
Comentários: 
Existe também a Lista duplamente encadeada, que surgiu a fim de prover
uma travessia no sentido contrário entre os nós, perceba que a lista encadeada
linear e a lista circular permitem a travessia entre os nós em apenas uma
única direção, para solucionar esse problema as lista duplamente encadeadas
utilizam o apontamento do ponteiro no primeiro elemento para o último
elemento e o ponteiro seguinte do último para o primeiro elemento. Vamos
desenhar que fica mais simples: 
Note que aqui cada nó terá dois ponteiros, um para o nó anterior e um para o
nó posterior. As listas duplamente encadeadas podem ser chamadas de listas
duplamente ligadas e podem ser lineares ou circulares.
Gabarito: Letra D
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
22
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
13. (UNIRIO – 2014 - UNIRIO – Analista de Controle de
Tecnologia da Informação - A) Na representação encadeada, um
elemento pode ser inserido em qualquer posição da lista sem
movimentar os elementos subseqüentes de suas atuais posições na
memória.
Comentários:
Perfeito! Na Lista encadeada, podemos inserir elementos em memória conforme
a posição que desejamos em uma lista sem movimentar os outros elementos
em memória, isso ocorre porque nas listas encadeadas podemos alocar
elementos de maneira dinâmica.
Gabarito: Correto
14. (IR-RS – 2016 – IF-RS – Professor de Informática- A) Uma
lista encadeada é uma coleção linear de objetos de uma classe auto-
referenciada, chamados de nós. Pode ser acessada por meio de um
ponteiro para o primeiro nó da lista. Os nós subsequentes são acessados
por meio do membro ponteiro de link armazenado em cada nó. 
Comentários:
Perfeito! Foi o que aprendemos: Uma lista encadeada apresenta uma coleção
linear de objetos (elementos) de uma classe auto-referenciada, ou seja, nós.
Para acessar uma lista utilizamos ponteiro ou apontamento no primeiro nó da
lista, os nós subsequentes são acessados de ponteiros que vão apontar para os
outros nós. 
Gabarito: Correto
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
23
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
15. (CESPE – 2015 – TRE-GO – Técnico Judiciário – Programação
de Sistemas) A respeito de estruturas de dados, julgue o item seguinte.
A estrutura de uma lista encadeada mantém uma coleção de itens em
ordem linear, sem, no entanto, exigir que eles ocupem posições
consecutivas na memória. 
Comentários:
Uma lista encadeada é dinâmica, cada elemento dentro da lista vai apontar para
o próximo elemento, por isso se chama lista encadeada e não existe a
necessidade de que esses elementos ocupem posições consecutivas na
memória. 
Gabarito: Correto
16. (VUNESP – 2014 – TJ-PA - Analista de Sistemas) Em uma
estrutura de dados do tipo Lista Duplamente Ligada (ou Lista
Duplamente Encadeada), cada elemento contém três componentes,
sendo um referente à informação propriamente dita e os outros dois
são ponteiros para outros elementos da estrutura.
Comentários:
Existe também a Lista duplamente encadeada, que surgiu a fim de prover
uma travessia no sentido contrário entre os nós, perceba que a lista encadeada
linear e a lista circular permitem a travessia entre os nós em apenas uma
única direção, para solucionar esse problema as lista duplamente encadeadas
utilizam o apontamento do ponteiro no primeiro elemento para o último
elemento e o ponteiro seguinte do último para o primeiro elemento. Vamos
desenhar que fica mais simples: 
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
24
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Note que aqui cada nó terá dois ponteiros, um para o nó anterior e um para o
nó posterior. As listas duplamente encadeadas podem ser chamadas de listas
duplamente ligadas e podem ser lineares ou circulares.
Na lista duplamente encadeada os nós possuem três campos: INF
(Informação), Left e Right que contêm ponteiros para os nós de ambos os
lados.
Gabarito: Correto
17. (IESES – 2016 – BAHIAGÁS – Analista de Processos - B) Listas
são estruturas de dados lineares que podem ser especializadas para listas
encadeadas/duplamente encadeadas para facilitar a navegação nestas.
Comentários: 
Fácil não é. Listas são estruturas de dados lineares que podem ser
especializadas para listas encadeadas/duplamente encadeadas o que facilita a
navegação destas.
Gabarito: Correto
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
25
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Filas
Uma Fila é uma estrutura de dados dinâmica e ordenada, onde os elementos
dentro da Fila seguem a seguinte regra: para sair da fila os elementos precisam
estar em uma extremidade, chamada início da fila e para entrar na fila precisam
estar na outra extremidade, chamada final da fila.
Só para ficar claro, quem está no início da fila é o Homer: 
e quem esta no final da fila é o Burns: Digo isso, porque é
normal quando tratamos da estrutura de dados Fila, os alunos (as) confundirem
o início com o final da fila. Ok?
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
26
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
A Fila também tem outro nome muito conhecido: Lista FIFO (First In First
Out) que expressa a idéia por de trás da Fila. Temos então que na estrutura de
dados Fila, o primeiro a entrar (First In) é o primeiro a sair (First Out).
Quando um elemento entra na fila, ele vai ocupar o final da fila, onde esta o
“Burns”, logo o elemento que esta mais perto de ser retirado da fila é o que
está no início. Temos então duas operações dentro de uma Fila: Enfileirar e
Desenfileirar, basicamente. Por fim também temos as filas duplamente
encadeadas que permitem a saída e a entrada de elementos em uma fila pelas
duas extremidades (início e final da fila). 
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
27
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
18. (CESPE – 2012 – TRE-RJ – Técnico Judiciário - Programação)
As filas são estruturas com base no princípio LIFO (last in, first out), no
qual os dados que forem inseridos primeiro na fila serão os últimos a
serem removidos. Existem duas funções que se aplicam a todas as filas:
PUSH, que insere um dado no topo da fila, e POP, que remove o item do
topo da fila.
Comentários:
A Fila também tem outro nome muito conhecido: Lista FIFO (First In First Out)
que expressa a idéia por de trás da Fila. Temos então que na estrutura de dados
Fila, o primeiro a entrar (First In) é o primeiro a sair (First Out).
Gabarito: Errado
19. (CESPE – 2010 – DETRAN-ES – Analista de Sistemas) No
armazenamento de dados pelo método FIFO (First in First out), a
estrutura de dados é representada por uma fila, em cuja posição final
ocorrem inserções e, na inicial, retiradas. 
Comentários:
A Fila também tem outro nome muito conhecido: Lista FIFO (First In First Out)
que expressa a idéia por de trás da Fila. Temos então que na estrutura de dados
Fila, o primeiro a entrar (First In) é o primeiro a sair (First Out).
Gabarito: Correto
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
28
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
20. (FCC – 2011 – TRT 19 Região – Analista Judiciário –
Tecnologia da Informação) FIFO refere-se a estruturas de dados do
tipo: 
a) Fila 
b) Árvore binária
c) Pilha
d) Matriz quadrada
e) Cubo
Comentários:
A Fila também tem outro nome muito conhecido: Lista FIFO (First In First Out)
que expressa a idéia por de trás da Fila. Temos então que na estrutura de dados
Fila, o primeiro a entrar (First In) é o primeiro a sair (First Out).
Gabarito: Letra A
21. (COMPERVE – 2015 – UFRN – Assistente Administrativo) Os
estoques de mercadorias podem ser avaliados através de vários
métodos. Um desses métodos avalia os estoques pela ordem
cronológica das entradas, em que o primeiro a entrar deve ser o
primeiro a sair. Esse método é conhecido como
a) Custo médio.
b) LIFO.
c) FIFO.
d) Custo de reposição.
Comentários:
Temos então que na estrutura de dados Fila, o primeiro a entrar (First In) é o 
primeiro a sair (First Out).
Gabarito: Letra C
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
29
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
22. (FUNRIO – 2015 – UFRB – Técnico de Tecnologia da
Informação) Considere a afirmativa: “O primeiro que entra é o
primeiro que sai. (FIFO)” Marque a alternativa que apresenta o nome da
estrutura de dados que representa a afirmativa acima.
a) Árvore
b) Deque
c) Fila
d) Lista
e) Pilha
Comentários:Lembrando: A Fila também tem outro nome muito conhecido: Lista FIFO (First
In First Out) que expressa a idéia por de trás da Fila. Temos então que na
estrutura de dados Fila, o primeiro a entrar (First In) é o primeiro a sair (First
Out).
Gabarito: Letra C
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
30
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Pilhas
Já aprendemos o funcionamento da estrutura de dados Fila, então queria te
recordar a primeira ilustração que fiz na aula para referenciar uma estrutura de
dados, a fim de que possamos melhor compreender o que é uma pilha:
Na pilha nós temos um conjunto de elementos ordenados que podem sofrer
inserção de elementos e retirada de elementos apenas em uma extremidade,
que é o topo da pilha. Para implementar uma pilha podemos utilizar listas ou
vetores.
Temos então aqui outro tipo de Lista, a lista LIFO (Last In First Out), ou seja,
o último a entrar (Last In) será o primeiro a sair (First Out). Temos aqui três
operações: push: responsável por inserir novos elementos no topo da pilha,
pop: responsável por remover elementos do topo da pilha e check ou top:
responsável por consultar o elemento no topo da pilha. 
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
31
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
23. (CESPE – 2013 – INPI – Analista de Planejamento – Área:
Desenvolvimento e Sistemas) Na estrutura de dados do tipo lista,
todo elemento novo que é introduzido na pilha torna-se o elemento do
topo. 
Comentários:
Pilhas são exemplos de listas. Todavia afirmar que nas listas, todo elemento
novo que é introduzido na pilha torna-se o elemento do topo é errado. O correto
seria dizer que na estrutura de dados do tipo Pilha, todo elemento novo que é
introduzido torna-se o elemento do topo.
Gabarito: Errado
24. (ESAF – 2013 – DNIT – Analista de Tecnologia da
Informação) Assinale a opção correta relativa às operações básicas
suportadas por pilhas. 
a) Push: insere um novo elemento no final da pilha.
b) Pop: adiciona elementos ao topo da pilha.
c) Pull: insere um novo elemento no interior da pilha.
d) Top: transfere o último elemento para o topo da pilha.
e) Top: acessa o elemento posicionado no topo da pila.
Comentários:
Temos então aqui outro tipo de Lista, a lista LIFO (Last In First Out), ou seja, o
último a entrar (Last In) será o primeiro a sair (First Out). Temos aqui três
operações: push: responsável por inserir novos elementos no topo da pilha,
pop: responsável por remover elementos do topo da pilha e check ou top:
responsável por consultar o elemento no topo da pilha. 
a) Insere no topo da pilha
b) Remove do topo da pilha
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
32
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
c) Não existe
d) Somente consulta o elemento no topo
e) Correto
Gabarito: Letra E
25. (FGV – 2015 – DPE/MT – Analista de Sistemas) Assinale a
opção que apresenta a estrutura de dados na qual o primeiro elemento
inserido é o último a ser removido.
a) Árvore
b) Fila
c) Pilha
d) Grafo
e) Tabela de disperção
Comentários:
Na pilha nós temos um conjunto de elementos ordenados que podem sofrem
inserção de elementos e retirada de elementos apenas em uma extremidade,
que é o topo da pilha. Para implementar uma pilha podemos utilizar listas ou
vetores, a diferença é o tipo de alocação em memória, nas “listas” temos
alocação dinâmica, enquanto nos “vetores” temos alocação estática.
Temos então aqui outro tipo de Lista, a lista LIFO (Last In First Out), ou seja, o
último a entrar (Last In) será o primeiro a sair (First Out). Temos aqui três
operações: push: responsável por inserir novos elementos no topo da pilha,
pop: responsável por remover elementos do topo da pilha e check ou top:
responsável por consultar o elemento no topo da pilha. 
Gabarito: Letra C
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
33
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
26. (CESPE – 2015 – MEC - Desenvolvedor) No que concerne aos
aspectos de linguagens de programação, algoritmos, estrutura de
dados e case, julgue o item subsequente. Pilha é uma coleção de
objetos que são inseridos e retirados de acordo com o princípio LIFO
(last in first out).
Comentários:
Na pilha nós temos um conjunto de elementos ordenados que podem sofrem
inserção de elementos e retirada de elementos apenas em uma extremidade,
que é o topo da pilha. Para implementar uma pilha podemos utilizar listas ou
vetores, a diferença é o tipo de alocação em memória, nas “listas” temos
alocação dinâmica, enquanto nos “vetores” temos alocação estática.
Temos então aqui outro tipo de Lista, a lista LIFO (Last In First Out), ou seja, o
último a entrar (Last In) será o primeiro a sair (First Out). Temos aqui três
operações: push: responsável por inserir novos elementos no topo da pilha,
pop: responsável por remover elementos do topo da pilha e check ou top:
responsável por consultar o elemento no topo da pilha. 
Gabarito: Correto
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
34
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Árvores
Temos aqui uma árvore com três níveis (0, 1 e 2) por padrão a raiz
representa o nível 0e os outros níveis são subsequentes ao da raiz, formando
assim nós pais e nós folha. A altura da árvore é igual ao número de níveis, no
caso aqui temos uma árvores de altura 3. Ok?
Existe uma classificação de árvore muito utilizada chamada de árvore binária,
que é uma árvore hierárquica em que todos os nós têm grau 0, 1 ou 2. 
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
Árvores são estruturas de dados que trabalham com hierarquia de forma
não linear, tendo um conjunto de elementos finito com apenas um único
elemento raiz, com sub-árvores ligadas a esse elemento (raiz). Assim
como temos um elemento raiz, temos nas extremidades da árvore “nós” que
podem ser “nós pais” ou “nós folhas”. 
35
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
A árvore binária é muito utilizada na computação devido a sua característica de
recursividade, note que cada nó poderá ter até duas folhas com ponteiros
apontando dos “nós pai” para os “nós folha”. 
Temos também outros dois tipos de árvores parecidas com a árvore binária, que
é a árvore estritamente binária que apresenta todos os nós com grau 0
ou 2 e a árvore binária completa que apresenta todas as folhas no
mesmo nível.
Árvore estritamente binária (Grau 0 ou 2)
Árvore binária completa (Todas as folhas no mesmo nível)
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
36
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
27. (Cespe – 2011 – STM – Analista de Sistemas) Enquanto uma
lista encadeada somente pode ser percorrida de um único modo, uma
árvore binária pode ser percorrida de muitas maneiras diferentes.
Comentários:
Nada como uma imagem para relembrar os conceitos: 
Definição de lista encadeada: 
Lista encadeada é uma estrutura de dados dinâmica composta por uma
sequência de elementos encadeados conhecidos como nós, possuindo dois
campos: campo endereço e campo informação.
Ok. A primeira sentença esta correta, umalista encadeada somente vai ser
percorrida em um único modo. Pergunto: e uma árvore binária pode ser
percorrida de N maneiras?
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
Podemos primeiro ler a raiz (A) e depois partir para os filhos
da esquerda (B) e depois da direta (C), conhecemos essa
estratégia como modo pré-fixado ou (A-B-C). 
Podemos também ler primeiro a sub-árvore B (esquerda)
depois a raiz (A) e depois a sub-árvore direita (C),
conhecemos essa estratégia como modo In-fixado. 
Por fim podemos ler primeiro a sub-árvorea esquerda (B),
depois a sub-árvore a direita (C) e a raiz (A), este é o modo
Pós-fixado. Logo uma árvore pode ser percorrida de três
modos diferentes.
37
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Gabarito: Correto
28. (FGV – 2015 – DPE-MT – Analista de Sistemas) No
desenvolvimento de sistemas, a escolha de estruturas de dados em
memória é especialmente relevante. Dentre outras classificações, é
possível agrupar essas estruturas em lineares e não lineares, conforme
a quantidade de sucessores e antecessores que os elementos da
estrutura possam ter. Assinale a opção que apresenta, respectivamente,
estruturas de dados lineares e não lineares. 
a) Tabela de dispersão e fila
b) Estrutura de seleção e pilha
c) Pilha e estrutura de seleção
d) Pilha e árvore binária de busca
e) Fila e pilha 
Comentários:
Exemplo de estruturas lineares são as: Filas, Listas e Pilhas, porque cada
elemento nessas estruturas pode ter um único predecessor e um único
sucessor. Estruturas não-lineares como árvores e grafos, apresentam uma
estrutura onde cada elemento pode ter mais de um predecessor ou mais de um
sucessor. 
Logo nossa resposta é Pilha e árvores binária de busca.
Gabarito: Letra D
29. (FCC – 2016 – Prefeitura de Teresina – Analista de
Tecnologia) Considerando a estrutura de dados denominada árvore,
a) A sua estrutura é definida como a profundidade média de todos os seus
vértices.
b) Um vértice com um ou dois filhos é denominada folha.
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
38
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
c) Cada nó tem no mínimo dois filhos em uma árvore binária.
d) As folhas de uma árvore binária completa podem ter profundidades
distintas entre si.
e) A profundidade de um vértice em uma árvore é definida como o
comprimento da raiz da árvore até esse vértice. 
Comentários:
As folhas mais profundas ou a folha mais profunda vai definir o último nível da
árvore e respectivamente a sua altura, logo a letra a (a) esta errada. 
Se possuir filhos não é folha, mas sim pai, logo a letra (b) esta errada. 
O correto seria cada nó tem no máximo e não no mínimo dois filhos em uma
árvore binária, então letra (c) esta errada.
 Em uma árvore binária completa as folhas devem ter a mesma profundidade, a
(d) esta errada também. 
Por fim letra (e) é a correta, o comprimento da raiz da árvore até o vértice
define a profundidade da árvore.
Gabarito: Letra E
30. (FGV –2014 – DPE – RJ – Técnico Superior Especializado em
Desenvolvimento de Sistemas - C) As operações POP e PUSH são
típicas de estruturas de dados largamente utilizadas em sistemas
computacionais, conhecidas como Árvores binárias.
Comentários:
As operações POP e PUSH são típicas de estruturas de dados largamente
utilizadas em sistemas computacionais, conhecidas como Pilhas.
Gabarito: Errado
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
39
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
31. (FUNCAB – 2014 – PRODAM-AM – Analista de Banco de
Dados) Seja a árvore binária abaixo:
Um tipo de encaminhamento pós-ficado nessa árvore é: 
a) x1-x3-x7-x6-x2-x5-x4
b) x1-x2-x4-x5-x3-x6-x7
c) x4-x2-x5-x1-x6-x3-x7
d) x4-x5-x2-x6-x7-x3-x1
e) x7-x3-x6-x1-x5-x2-x4
Comentários:
Podemos ler primeiro a sub-árvorea esquerda (X4), depois a sub-árvore a
direita (X5) e a raiz (X2), depois (X6-X7-X3) e X1 este é o modo Pós-fixado.
Gabarito: Letra D
32. (FCC – 2016 – AL-MS – Programador Visual) Considere a figura
abaixo.
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
40
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
A figura apresenta uma forma de organização das interligações entre as páginas
de um site sendo projetado. Ela é denominada organização: 
a) Em árvore
b) Hierarquica com profundidade ilimitada
c) Binária com profundidade limitada
d) Em diretórios
e) Sequencial com hyperlinks
Comentários:
Depois que aprendemos ficou fácil saber que estamos tratando aqui de árvore.
Gabarito: Letra A
33. (FCC – 2011 – TRT 19 Região – Técnico de Tecnologia da
Informação) Em uma árvore binária, todos os nós têm grau:
a) 2
b) 0, 1 ou 2
c) Divisível por 2
d) Maior ou igual a 2
e) 0 ou 1
Comentários:
Existe uma classificação de árvore muito utilizada chamada de árvore binária,
que é uma árvore hierárquica em que todos os nós têm grau 0, 1 ou 2. 
Gabarito: Letra B
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
41
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Fechamos por aqui, encontro você querido aluno (a) na nossa próxima aula. 
Bons estudos!
Abração
Se a vida não ficar mais fácil, trate de ficar mais forte.
JB Carvalho
Lembre-se:
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
Prof. Pedro Henrique Chagas Freitas
Instagram: _pedrochagasfreitas
pedro.freitas@pontodosconcursos.com.br
42
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Lista das Questões Comentadas na Aula
1. (CESPE – 2010 – TRT/RN - Analista de Sistemas) O tipo abstrato
de dados consiste em um modelo matemático (v,o) em que v é um
conjunto de valores e o é um conjunto de operações que podem ser
realizadas sobre valores.
Comentários:
Perfeito! Vamos a definição: O que é um TAD? TAD (Tipos Abstratos de Dados)
é um modelo matemático que visa representar um conjunto de operações
sobre um conjunto de valores. Um TAD é normalmente representado através
de um especificação algébrica que contém três parte: Semântica, Sintática e
Restrições.
Note que aqui temos essa designação de operações representada por (o) e de
valores representado por (v). 
Gabarito: Correto
2. (FCC – 2010 – TRE/AM – Analista Judiciário – Tecnologia da
Informação)Em relação aos tipos abstratos de dados (TAD) é correto
afirmar:
a) O TAD não encapsula a estrutura de dados para permitir que os usuários
possam ter acesso a todas as operações sobre esses dados.
b) Na transferência de dados de uma pilha para outra, não é necessário
saber como a pilha é efetivamente implementada.
c) Alterações na implementação de um TAD implicam em alterações em seu
uso.
d) Um programador pode alterar os dados armazenados, mesmo que não
tenha conhecimento de sua implementação.
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
43
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
e) TAD é um tipo de dados que esconde a sua implementação de quem o
manipula. 
Comentários: 
Temos então que o TAD é responsável por encapsular estrutura de dados
com características semelhantes. Esconder a implementação e encapsular a
implementação são duas formas de dizera mesma coisa. 
Gabarito: Letra E
3. (FGV – 2015 – DPE/MT – Analista de Sistemas) No
desenvolvimento de sistemas, a escolha de estruturas de dados em
memória é especialmente relevante. Dentre outras classificações, é
possível agrupar essas estruturas em lineares e não lineares, conforme
a quantidade de sucessores e antecessores que os elementos da
estruturas possam ter.
Comentários: 
Como vimos na aula: 
Temos também dois tipos de estruturas dentro do universo das estruturas de
dados: Estruturas Lineares e não Lineares. As Estruturas Lineares são
estruturas que cada elemento pode ter um único predecessor, menos o
primeiro elemento obviamente e um único sucessor, menos é claro o último
elemento. São elas as Pilhas, Arranjos, Filas e Listas, dentre outros.
As Estruturas não lineares apresentam cada elemento podendo ter mais de
um predecessor ou sucessor. Por exemplo: Os Grafos e as Árvores, dentre
outras. 
Gabarito: Correto
4. (CESPE – 2011 – Empresa Brasileira de Comunicação – Analista
de Tecnologia da Informação) Vetores são utilizados quando
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
44
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
estruturas indexadas necessitam de mais que um índice para identificar
um de seus elementos.
Comentários:
Vetores necessitam apenas de um índice, quando precisamos de mais de um
índice para identificação de elementos, estamos tratando de matrizes. 
Gabarito: Errado
5. (CESPE – 2010 – TER-BA – Analista Judiciário – Área:
Sistemas)Uma posição específica de um vetor pode ser acessada
diretamente por meio de seu índice.
Comentários:
Sim. Um Vetor possibilita o acesso a qualquer elemento diretamente através do
índice, veremos inclusive que essa é uma das principais diferenças entre um
vetor e uma lista. Ok?
Gabarito: Correto
6. (EXATUS– 2015 – BANPARÁ – Técnico em Informática - C)Uma
matriz de x linhas e y colunas contêm (x*y) posições onde podem ser
armazenados dados.
Comentários:
Correto. Note que uma matriz, por exemplo: (3,3) terá 3*3 posições = 9
posições. 
Gabarito: Correto
7. (CESPE – 2010 – Banco da Amazônia– Arquiteto de
Tecnologia)Os dados armazenados em uma estrutura do tipo matriz
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
45
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
não podem ser acessados de maneira aleatória. Portanto, usa-se
normalmente uma matriz quando o volume de inserção e remoção de
dados é maior que o volume de leitura dos elementos armazenados. 
Comentários:
Não existe essa limitação de que os dados não podem ser acessados de
maneira aleatória, através dos índices os dados podem ser acessados de forma
direta ou aleatória. 
Gabarito: Errado
8. (CESPE – 2016 – FUNPRESP– Analista de Tecnologia da
Informação) Uma estrutura de dados que possui três campos: dois
ponteiros e campo de informação denomina-se:
a) Lista encadeada dupla.
b) Lista encadeada simples.
c) Pilha
d) Fila
e) Vetor
Comentários:
Dois ponteiros e um campo informação:
Na lista duplamente encadeada os nós possuem três campos: INF
(Informação),Left e Right que contêm ponteiros para os nós de ambos os
lados.
Gabarito: Letra A
_________________________________________________________
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
46
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
9. (CESPE – 2012 – Banco da Amazônia– Administrador de
Dados)Estruturas ligadas como listas encadeadas superam a
limitação das matrizes que não podem alterar seu tamanho inicial.
Comentários: 
Listas encadeadas podem alocar seus elementos de maneira dinâmica alterando
assim seu tamanho, as matrizes não podem, elas respeitam seu tamanho inicial
implementado. 
Gabarito: Correto
10. (COSEAC– 2009– DATAPREV– Analista de Tecnologia da
Informação)Sobre listas encadeadas, é INCORRETO afirmar que:
a) Os dados são armazenados dinamicamente;
b) São acessadas pelo primeiro nodo da lista;
c) O final da lista faz uma referência para null;
d) Possuem tamanho fixo;
e) Pilhas e filas são versões limitadas de listas encadeadas;
Comentários:
Essa questão é muito interessante, porque ela resume bem as características de
uma lista encadeada. Uma lista encadeada os dados são armazenados
dinamicamente? Sim. Eles são acessados pelo primeiro nodo da lista? Sim. No
final da lista temos uma referência nula (null)? Sim. O tamanho de uma lista
encadeada é fixo? Claro que não e as pilhas e filas são versões limitadas de
listas encadeadas? Sim. 
Gabarito: Letra D
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
47
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
11. (VUNESP – 2014 – SP-URBANISMO – Analista
Administrativo) Tem-se uma estrutura de dados do tipo lista
encadeada com 10 elementos, em que o primeiro e o último elemento
estão ligados entre si. Trata-se de uma estrutura denominada Lista:
a) Binária
b) Balanceada
c) Invertida
d) Encadeada Circular
e) Duplamente Encadeada
Comentários:
Caso no último nó tenhamos um ponteiro apontando para o primeiro nó,
teremos o que é conhecido como Lista fechada ou Lista circular. 
Exemplo:
Gabarito: Letra D
12. (CESGRANRIO – 2014 – Banco da Amazônia – Analista de
Sistemas) Uma lista duplamente encadeada tem como característica
ser formada por elementos que
a) Se concatenam de forma circular, de tal maneira que, ao chegar ao final
da lista, o próximo elemento volta a ser o primeiro.
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
48
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
b) Contêm, além de um ou mais campos chave, mais um campo de ponteiro:
o próximo, que permite o acesso ao elemento que sucede o atual (o
próximo) presente na mesma lista.
c) Contêm, além de um campo chave, mais um campo de ponteiro: o
próximo, que permite o acesso ao elemento que sucede o atual (o
próximo) presente na mesma lista, de tal forma que os campos chave
estão ordenados, ou seja, a chave do próximo é sempre maior ou igual à
chave do atual elemento.
d) Contêm, além de um ou mais campos chave, dois outros campos de
ponteiros: próximo e anterior, que permitem o acesso aos elementos
adjacentes (próximo e anterior) presentes na mesma lista.
e) Estão em posições adjacentes da memória, permitindo o acesso
sequencial ao próximo e ao anterior de cada elemento pelo simples uso
de um índice.
Comentários: 
Existe também a Lista duplamente encadeada, que surgiu a fim de prover
uma travessia no sentido contrário entre os nós, perceba que a lista encadeada
linear e a lista circular permitem a travessia entre os nós em apenas uma
única direção, para solucionar esse problema as lista duplamente encadeadas
utilizam o apontamento do ponteiro no primeiro elemento para o último
elemento e o ponteiro seguinte do último para o primeiro elemento. Vamos
desenhar que fica mais simples: 
Note que aqui cada nó terá dois ponteiros, um para o nó anterior e um para o
nó posterior. As listas duplamente encadeadas podem ser chamadas de listas
duplamente ligadas e podem ser lineares ou circulares.
Gabarito: Letra D
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
49
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos- Prof. Pedro Freitas
13. (UNIRIO – 2014 - UNIRIO – Analista de Controle de
Tecnologia da Informação - A) Na representação encadeada, um
elemento pode ser inserido em qualquer posição da lista sem movimentar
os elementos subseqüentes de suas atuais posições na memória.
Comentários:
Perfeito! Na Lista encadeada, podemos inserir elementos em memória conforme
a posição que desejamos em uma lista sem movimentar os outros elementos
em memória, isso ocorre porque nas listas encadeadas podemos alocar
elementos de maneira dinâmica.
Gabarito: Correto
14. (IR-RS – 2016 – IF-RS – Professor de Informática - A)Uma
lista encadeada é uma coleção linear de objetos de uma classe
autoreferenciada, chamados de nós. Pode ser acessada por meio de um
ponteiro para o primeiro nó da lista. Os nós subsequentes são acessados
por meio do membro ponteiro de link armazenado em cada nó. 
Comentários:
Perfeito! Foi o que aprendemos: Uma lista encadeada apresenta uma coleção
linear de objetos (elementos) de uma classe auto-referenciada, ou seja, nós.
Para acessar uma lista utilizamos ponteiro ou apontamento no primeiro nó da
lista, os nós subseqüentes são acessados de ponteiros que vão apontar para os
outros nós. 
Gabarito: Correto
15. (CESPE – 2015 – TRE-GO – Técnico Judiciário – Programação
de Sistemas) A respeito de estruturas de dados, julgue o item
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
50
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
seguinte. A estrutura de uma lista encadeada mantém uma coleção de
itens em ordem linear, sem, no entanto, exigir que eles ocupem
posições consecutivas na memória. 
Comentários:
Uma lista encadeada é dinâmica, cada elemento dentro da lista vai apontar para
o próximo elemento, por isso se chama lista encadeada e não existe a
necessidade de que esses elementos ocupem posições consecutivas na
memória. 
Gabarito: Correto
16. (VUNESP – 2014 – TJ-PA - Analista de Sistemas) Em uma
estrutura de dados do tipo Lista Duplamente Ligada (ou Lista
Duplamente Encadeada), cada elemento contém três componentes,
sendo um referente à informação propriamente dita e os outros dois
são ponteiros para outros elementos da estrutura.
Comentários:
Existe também a Lista duplamente encadeada, que surgiu a fim de prover
uma travessia no sentido contrário entre os nós, perceba que a lista encadeada
linear e a lista circular permitem a travessia entre os nós em apenas uma
única direção, para solucionar esse problema as lista duplamente encadeadas
utilizam o apontamento do ponteiro no primeiro elemento para o último
elemento e o ponteiro seguinte do último para o primeiro elemento. Vamos
desenhar que fica mais simples: 
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
51
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Note que aqui cada nó terá dois ponteiros, um para o nó anterior e um para o
nó posterior. As listas duplamente encadeadas podem ser chamadas de listas
duplamente ligadas e podem ser lineares ou circulares.
Na lista duplamente encadeada os nós possuem três campos: INF
(Informação),Left e Right que contêm ponteiros para os nós de ambos os
lados.
Gabarito: Correto
17. (IESES – 2016 – BAHIAGÁS – Analista de Processos - B) Listas
são estruturas de dados lineares que podem ser especializadas para
listas encadeadas/duplamente encadeadas para facilitar a navegação
nestas.
Comentários: 
Fácil não é. Listas são estruturas de dados lineares que podem ser
especializadas para listas encadeadas/duplamente encadeadas o que facilita a
navegação destas.
Gabarito: Correto
18. (CESPE – 2012 – TRE-RJ – Técnico Judiciário - Programação)
As filas são estruturas com base no princípio LIFO (last in, first out), no
qual os dados que forem inseridos primeiro na fila serão os últimos a
serem removidos. Existem duas funções que se aplicam a todas as filas:
PUSH, que insere um dado no topo da fila, e POP, que remove o item do
topo da fila.
Comentários:
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
52
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
A Fila também tem outro nome muito conhecido: Lista FIFO (First In First Out)
que expressa a idéia por de trás da Fila. Temos então que na estrutura de dados
Fila, o primeiro a entrar (First In) é o primeiro a sair (First Out).
Gabarito: Errado
19. (CESPE – 2010 – DETRAN-ES – Analista de Sistemas) No
armazenamento de dados pelo método FIFO (First in First out), a
estrutura de dados é representada por uma fila, em cuja posição final
ocorrem inserções e, na inicial, retiradas. 
Comentários:
A Fila também tem outro nome muito conhecido: Lista FIFO (First In First Out)
que expressa a idéia por de trás da Fila. Temos então que na estrutura de dados
Fila, o primeiro a entrar (First In) é o primeiro a sair (First Out).
Gabarito: Correto
20. (FCC – 2011 – TRT 19 Região – Analista Judiciário –
Tecnologia da Informação) FIFO refere-se a estruturas de dados do
tipo: 
a) Fila 
b) Árvore binária
c) Pilha
d) Matriz quadrada
e) Cubo
Comentários:
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
53
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
A Fila também tem outro nome muito conhecido: Lista FIFO (First In First Out)
que expressa a idéia por de trás da Fila. Temos então que na estrutura de dados
Fila, o primeiro a entrar (First In) é o primeiro a sair (First Out).
Gabarito: Letra A
21. (COMPERVE – 2015 – UFRN – Assistente Administrativo) Os
estoques de mercadorias podem ser avaliados através de vários
métodos. Um desses métodos avalia os estoques pela ordem
cronológica das entradas, em que o primeiro a entrar deve ser o
primeiro a sair. Esse método é conhecido como
a) Custo médio.
b) LIFO.
c) FIFO.
d) Custo de reposição.
Comentários:
Temos então que na estrutura de dados Fila, o primeiro a entrar (First In) é o 
primeiro a sair (First Out).
Gabarito: Letra C
22. (FUNRIO – 2015 – UFRB – Técnico de Tecnologia da
Informação)Considere a afirmativa: “O primeiro que entra é o primeiro
que sai. (FIFO)” Marque a alternativa que apresenta o nome da
estrutura de dados que representa a afirmativa acima.
a) Árvore
b) Deque
c) Fila
d) Lista
e) Pilha
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
54
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Comentários:
Lembrando: A Fila também tem outro nome muito conhecido: Lista FIFO (First
In First Out) que expressa a idéia por de trás da Fila. Temos então que na
estrutura de dados Fila, o primeiro a entrar (First In) é o primeiro a sair (First
Out).
Gabarito: Letra C
23. (CESPE – 2013 – INPI – Analista de Planejamento – Área:
Desenvolvimento e Sistemas)Na estrutura de dados do tipo lista,
todo elemento novo que é introduzido na pilha torna-se o elemento do
topo. 
Comentários:
Pilhas são exemplos de listas. Todavia afirmar que nas listas, todo elemento
novo que é introduzido na pilha torna-se o elemento do topo é errado. O correto
seria dizer que na estrutura de dados do tipo Pilha, todo elemento novo que é
introduzido torna-se o elemento do topo.
Gabarito: Errado
24. (ESAF – 2013 – DNIT – Analista de Tecnologia da
Informação)Assinale a opção correta relativa às operações básicas
suportadas por pilhas. 
a) Push: insere um novo elemento no final da pilha.
b) Pop:adiciona elementos ao topo da pilha.
c) Pull: insere um novo elemento no interior da pilha.
d) Top: transfere o último elemento para o topo da pilha.
e) Top: acessa o elemento posicionado no topo da pila.
Comentários:
Temos então aqui outro tipo de Lista, a lista LIFO (Last In First Out), ou seja, o
último a entrar (Last In) será o primeiro a sair (First Out). Temos aqui três
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
55
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
operações: push: responsável por inserir novos elementos no topo da pilha,
pop: responsável por remover elementos do topo da pilha e check ou top:
responsável por consultar o elemento no topo da pilha. 
a) Insere no topo da pilha
b) Remove do topo da pilha
c) Nãoexiste
d) Somente consulta o element no topo
e) Correto
Gabarito: Letra E
25. (FGV – 2015 – DPE/MT – Analista de Sistemas)Assinale a
opção que apresenta a estrutura de dados na qual o primeiro elemento
inserido é o último a ser removido.
a) Árvore
b) Fila
c) Pilha
d) Grafo
e) Tabela de disperção
Comentários:
Na pilha nós temos um conjunto de elementos ordenados que podem sofrem
inserção de elementos e retirada de elementos apenas em uma extremidade,
que é o topo da pilha. Para implementar uma pilha podemos utilizar listas ou
vetores, a diferença é o tipo de alocação em memória, nas “listas” temos
alocação dinâmica, enquanto nos “vetores” temos alocação estática.
Temos então aqui outro tipo de Lista, a lista LIFO (Last In First Out), ou seja, o
último a entrar (Last In) será o primeiro a sair (First Out). Temos aqui três
operações: push: responsável por inserir novos elementos no topo da pilha,
pop: responsável por remover elementos do topo da pilha e check ou top:
responsável por consultar o elemento no topo da pilha. 
Gabarito: Letra C
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
56
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
26. (CESPE – 2015 – MEC - Desenvolvedor) No que concerne aos
aspectos de linguagens de programação, algoritmos, estrutura de
dados e case, julgue o item subsequente.Pilha é uma coleção de
objetos que são inseridos e retirados de acordo com o princípio LIFO
(last in first out).
Comentários:
Na pilha nós temos um conjunto de elementos ordenados que podem sofrem
inserção de elementos e retirada de elementos apenas em uma extremidade,
que é o topo da pilha. Para implementar uma pilha podemos utilizar listas ou
vetores, a diferença é o tipo de alocação em memória, nas “listas” temos
alocação dinâmica, enquanto nos “vetores” temos alocação estática.
Temos então aqui outro tipo de Lista, a lista LIFO (Last In First Out), ou seja, o
último a entrar (Last In) será o primeiro a sair (First Out). Temos aqui três
operações: push: responsável por inserir novos elementos no topo da pilha,
pop: responsável por remover elementos do topo da pilha e check ou top:
responsável por consultar o elemento no topo da pilha. 
Gabarito: Correto
27. (Cespe – 2011 – STM – Analista de Sistemas)Enquanto uma
lista encadeada somente pode ser percorrida de um único modo, uma
árvore binária pode ser percorrida de muitas maneiras diferentes.
Comentários:
Nada como uma imagem para relembrar os conceitos: 
Definição de lista encadeada: 
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
57
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Lista encadeada é uma estrutura de dados dinâmica composta por uma
sequência de elementos encadeados conhecidos como nós, possuindo dois
campos: campo endereço e campo informação.
Ok. A primeira sentença esta correta, uma lista encadeada somente vai ser
percorrida em um único modo e uma árvore binária pode ser percorrida de N
maneiras?
Gabarito: Correto
28. (FGV – 2015 – DPE-MT – Analista de Sistemas)No
desenvolvimento de sistemas, a escolha de estruturas de dados em
memória é especialmente relevante. Dentre outras classificações, é
possível agrupar essas estruturas em lineares e não lineares, conforme
a quantidade de sucessores e antecessores que os elementos da
estrutura possam ter. Assinale a opção que apresenta, respectivamente,
estruturas de dados lineares e não lineares. 
a) Tabela de dispersão e fila
b) Estrutura de seleção e pilha
c) Pilha e estrutura de seleção
d) Pilha e árvore binária de busca
e) Fila e pilha 
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
Podemos primeiro ler a raiz (A) e depois partir
para os filhos da esquerda (B) e depois da direta
(C), conhecemos essa estratégia como modo pré-
fixado ou (A-B-C). Podemos também ler primeiro
a sub-árvore B (esquerda) depois a raiz (A) e
depois a sub-árvore direita (C), conhecemos essa
estratégia como modo In-fixado. Por fim podemos
ler primeiro a sub-árvorea esquerda (B), depois a
sub-árvore a direita (C) e a raiz (A), este é o
modo Pós-fixado. 
Logo uma árvore pode ser percorrida de três
modos diferentes.
58
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Comentários:
Exemplo de estruturas lineares são as: Filas, Listas e Pilhas, porque cada
elemento nessas estruturas pode ter um único predecessor e um único
sucessor. Estruturas não-lineares como árvores e grafos, apresentam uma
estrutura onde cada elemento pode ter mais de um predecessor ou mais de um
sucessor. 
Logo nossa resposta é Pilha e árvores binária de busca.
Gabarito: Letra D
29. (FCC – 2016 – Prefeitura de Teresina – Analista de
Tecnologia)Considerando a estrutura de dados denominada árvore,
a) A sua estrutura é definida como a profundidade média de todos os seus
vértices.
b) Um vértice com um ou dois filhos é denominada folha.
c) Cada nó tem no mínimo dois filhos em uma árvore binária.
d) As folhas de uma árvore binária completa podem ter profundidades
distintas entre si.
e) A profundidade de um vértice em uma árvore é definida como o
comprimento da raiz da árvore até esse vértice. 
Comentários:
As folhas mais profundas ou a folha mais profunda vai definir o último nível da
árvore e respectivamente a sua altura, logo a letra a (a) esta errada. Se possuir
filhos não é folha, mas sim pai, logo a letra (b) esta errada. O correto seria
cada nó tem no máximo e não no mínimo dois filhos em uma árvore binária,
então letra (C) esta errada. Em uma árvore binária completa as folhas devem
ter a mesma profundidade, (D) Errado também. Por fim letra (E) é a correta, o
comprimento da raiz da árvore até o vértice define a profundidade da árvore.
Gabarito: Letra E
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
59
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
30. (FGV –2014 – DPE – RJ – Técnico Superior Especializado em
Desenvolvimento de Sistemas - C)As operações POP e PUSH são
típicas de estruturas de dados largamente utilizadas em sistemas
computacionais, conhecidas como Árvores binárias.
Comentários:
As operações POP e PUSH são típicas de estruturas de dados largamente
utilizadas em sistemas computacionais, conhecidas como Pilhas.
Gabarito: Errado
31. (FUNCAB – 2014 – PRODAM-AM – Analista de Banco de
Dados)Seja a árvore binária abaixo:
Um tipo de encaminhamento pós-ficado nessa árvore é: 
a) x1-x3-x7-x6-x2-x5-x4
b) x1-x2-x4-x5-x3-x6-x7
c) x4-x2-x5-x1-x6-x3-x7
d) x4-x5-x2-x6-x7-x3-x1
e) x7-x3-x6-x1-x5-x2-x4
Comentários:
Podemos lerprimeiro a sub-árvorea esquerda (X4), depois a sub-árvore a
direita (X5) e a raiz (X2), depois (X6-X7-X3) e X1 este é o modo Pós-fixado.
Gabarito: Letra D
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
60
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
32. (FCC – 2016 – AL-MS – Programador Visual)Considere a figura
abaixo.
A figura apresenta uma forma de organização das interligações entre as páginas
de um site sendo projetado. Ela é denominada organização: 
a) Em árvore
b) Hierarquica com profundidade limitada
c) Binária com profundidade ilimitada
d) Em diretórios
e) Sequencial com hyperlinks
Comentários:
Depois que aprendemos ficou fácil saber que estamos tratando aqui de árvore.
Gabarito: Letra A
33. (FCC – 2011 – TRT 19 Região – Técnico de Tecnologia da
Informação) Em uma árvore binária, todos os nós têm grau:
a) 2
b) 0, 1 ou 2
c) Divisível por 2
d) Maior ou igual a 2
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
61
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
e) 0 ou 1
Comentários:
Existe uma classificação de árvore muito utilizada chamada de árvore binária,
que é uma árvore hierárquica em que todos os nós têm grau 0, 1 ou 2. 
Gabarito: Letra B
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
62
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Bibliografia
LEISERSON, Charles E. Algoritmos: Teoria e Prática.MIT Press, 1990.
RANGEL, José L. Introdução a estrutura de dados. 2004.
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
63
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
Lista das Questões Apresentadas na Aula
1. (CESPE – 2010 – TRT/RN - Analista de Sistemas) O tipo abstrato
de dados consiste em um modelo matemático (v,o) em que v é um
conjunto de valores e o é um conjunto de operações que podem ser
realizadas sobre valores.
2. (FCC – 2010 – TRE/AM – Analista Judiciário – Tecnologia da
Informação)Em relação aos tipos abstratos de dados (TAD) é correto
afirmar:
a) O TAD não encapsula a estrutura de dados para permitir que os usuários
possam ter acesso a todas as operações sobre esses dados.
b) Na transferência de dados de uma pilha para outra, não é necessário
saber como a pilha é efetivamente implementada.
c) Alterações na implementação de um TAD implicam em alterações em seu
uso.
d) Um programador pode alterar os dados armazenados, mesmo que não
tenha conhecimento de sua implementação.
e) TAD é um tipo de dados que esconde a sua implementação de quem o
manipula. 
3. (FGV – 2015 – DPE/MT – Analista de Sistemas) No
desenvolvimento de sistemas, a escolha de estruturas de dados em
memória é especialmente relevante. Dentre outras classificações, é
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
64
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
possível agrupar essas estruturas em lineares e não lineares, conforme
a quantidade de sucessores e antecessores que os elementos da
estruturas possam ter.
4. (CESPE – 2011 – Empresa Brasileira de Comunicação – Analista
de Tecnologia da Informação) Vetores são utilizados quando
estruturas indexadas necessitam de mais que um índice para identificar
um de seus elementos.
5. (CESPE – 2010 – TER-BA – Analista Judiciário – Área:
Sistemas)Uma posição específica de um vetor pode ser acessada
diretamente por meio de seu índice.
6. (EXATUS– 2015 – BANPARÁ – Técnico em Informática - C)Uma
matriz de x linhas e y colunas contêm (x*y) posições onde podem ser
armazenados dados.
7. (CESPE – 2010 – Banco da Amazônia– Arquiteto de
Tecnologia)Os dados armazenados em uma estrutura do tipo matriz
não podem ser acessados de maneira aleatória. Portanto, usa-se
normalmente uma matriz quando o volume de inserção e remoção de
dados é maior que o volume de leitura dos elementos armazenados. 
8. (CESPE – 2016 – FUNPRESP– Analista de Tecnologia da
Informação) Uma estrutura de dados que possui três campos: dois
ponteiros e campo de informação denomina-se:
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
65
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
a) Lista encadeada dupla.
b) Lista encadeada simples.
c) Pilha
d) Fila
e) Vetor
_________________________________________________________
9. (CESPE – 2012 – Banco da Amazônia– Administrador de Dados)
Estruturas ligadas como listas encadeadas superam a limitação das
matrizes que não podem alterar seu tamanho inicial.
10. (COSEAC– 2009– DATAPREV– Analista de Tecnologia da
Informação)Sobre listas encadeadas, é INCORRETO afirmar que:
a) Os dados são armazenados dinamicamente;
b) São acessadas pelo primeiro nodo da lista;
c) O final da lista faz uma referência para null;
d) Possuem tamanho fixo;
e) Pilhas e filas são versões limitadas de listas encadeadas;
11. (VUNESP – 2014 – SP-URBANISMO – Analista
Administrativo) Tem-se uma estrutura de dados do tipo lista
encadeada com 10 elementos, em que o primeiro e o último elemento
estão ligados entre si. Trata-se de uma estrutura denominada Lista:
f) Binária
g) Balanceada
h) Invertida
i) Encadeada Circular
j) Duplamente Encadeada
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
66
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas
12. (CESGRANRIO – 2014 – Banco da Amazônia – Analista de
Sistemas) Uma lista duplamente encadeada tem como característica
ser formada por elementos que
a) Se concatenam de forma circular, de tal maneira que, ao chegar ao final
da lista, o próximo elemento volta a ser o primeiro.
b) Contêm, além de um ou mais campos chave, mais um campo de ponteiro:
o próximo, que permite o acesso ao elemento que sucede o atual (o
próximo) presente na mesma lista.
c) Contêm, além de um campo chave, mais um campo de ponteiro: o
próximo, que permite o acesso ao elemento que sucede o atual (o
próximo) presente na mesma lista, de tal forma que os campos chave
estão ordenados, ou seja, a chave do próximo é sempre maior ou igual à
chave do atual elemento.
d) Contêm, além de um ou mais campos chave, dois outros campos de
ponteiros: próximo e anterior, que permitem o acesso aos elementos
adjacentes (próximo e anterior) presentes na mesma lista.
e) Estão em posições adjacentes da memória, permitindo o acesso
sequencial ao próximo e ao anterior de cada elemento pelo simples uso
de um índice.
13. (UNIRIO – 2014 - UNIRIO – Analista de Controle de
Tecnologia da Informação - A) Na representação encadeada, um
elemento pode ser inserido em qualquer posição da lista sem movimentar
os elementos subseqüentes de suas atuais posições na memória.
14. (IR-RS – 2016 – IF-RS – Professor de Informática - A)Uma
lista encadeada é uma coleção linear de objetos de uma classe
autoreferenciada, chamados de nós. Pode ser acessada por meio de um
ponteiro para o primeiro nó da lista. Os nós subsequentes são acessados
por meio do membro ponteiro de link armazenado em cada nó. 
www.pontodosconcursos.com.br|Prof. Pedro Henrique Chagas Freitas
67
Programação em Teoria e Exercícios Comentados
TRE-TO – Técnico Judiciário - Programação
Aula 00 – Estrutura de Dados e Algoritmos - Prof. Pedro Freitas