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