AULA 00 Estrutura de Dados Professor Pedro Henrique Chagas Freitas

Tamanho: px
Começar a partir da página:

Download "AULA 00 Estrutura de Dados Professor Pedro Henrique Chagas Freitas"

Transcrição

1 AULA 00 Estrutura de Dados Professor Pedro Henrique Chagas Freitas Prof. Pedro Henrique Chagas Freitas 1

2 Tópicos da Aula Introdução a Estrutura de Dados... 3 Vetores e Matrizes Lista Encadeada Linear Filas Pilhas Árvores Lista das Questões Comentadas na Aula Bibliografia Lista das Questões Apresentadas na Aula Gabarito Prof. Pedro Henrique Chagas Freitas 2

3 Aula 00 Estrutura de Dados 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 Prof. Pedro Henrique Chagas Freitas 3

4 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? Prof. Pedro Henrique Chagas Freitas 4

5 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. 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). Prof. Pedro Henrique Chagas Freitas 5

6 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). 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 Prof. Pedro Henrique Chagas Freitas 6

7 programação ou paradigma, logo não importa se implementamos uma Lista, Pilha ou Fila com paradigma estruturado ou com paradigma orientado a objeto. Prof. Pedro Henrique Chagas Freitas 7

8 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. 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. e) TAD é um tipo de dados que esconde a sua implementação de quem o manipula. Prof. Pedro Henrique Chagas Freitas 8

9 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. 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 Prof. Pedro Henrique Chagas Freitas 9

10 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 Prof. Pedro Henrique Chagas Freitas 10

11 matriz como um arranjo bidimensional ou multidimensional de alocação estática e seqüencial. 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. 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]; Prof. Pedro Henrique Chagas Freitas 11

12 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. 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. 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. Prof. Pedro Henrique Chagas Freitas 12

13 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. 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 Prof. Pedro Henrique Chagas Freitas 13

14 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. Prof. Pedro Henrique Chagas Freitas 14

15 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 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. 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 Prof. Pedro Henrique Chagas Freitas 15

16 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. 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. 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. Prof. Pedro Henrique Chagas Freitas 16

17 Professor mais então Vetor e Lista são a mesma coisa? Qual a diferença entre um e o outro? 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 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. Prof. Pedro Henrique Chagas Freitas 17

18 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. 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; 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 Prof. Pedro Henrique Chagas Freitas 18

19 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 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 Prof. Pedro Henrique Chagas Freitas 19

20 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 seqüencial ao próximo e ao anterior de cada elemento pelo simples uso de um índice. 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: Prof. Pedro Henrique Chagas Freitas 20

21 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 13. (UNIRIO 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. 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ó. 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 Prof. Pedro Henrique Chagas Freitas 21

22 lista, os nós subsequentes 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 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. 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. 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 Prof. Pedro Henrique Chagas Freitas 22

23 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 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. 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 Prof. Pedro Henrique Chagas Freitas 23

24 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? Prof. Pedro Henrique Chagas Freitas 24

25 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). Prof. Pedro Henrique Chagas Freitas 25

26 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. 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. 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 Prof. Pedro Henrique Chagas Freitas 26

27 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 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. Temos então que na estrutura de dados Fila, o primeiro a entrar (First In) é o primeiro a sair (First Out). Prof. Pedro Henrique Chagas Freitas 27

28 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 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 Prof. Pedro Henrique Chagas Freitas 28

29 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. Prof. Pedro Henrique Chagas Freitas 29

30 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. 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. 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 Prof. Pedro Henrique Chagas Freitas 30

31 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 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 Prof. Pedro Henrique Chagas Freitas 31

32 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). 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 Prof. Pedro Henrique Chagas Freitas 32

33 Árvores Á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. 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. Prof. Pedro Henrique Chagas Freitas 33

34 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) Prof. Pedro Henrique Chagas Freitas 34

35 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. 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, uma lista encadeada somente vai ser percorrida em um único modo. Pergunto: e uma árvore binária pode ser percorrida de N maneiras? 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. Prof. Pedro Henrique Chagas Freitas 35

36 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 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. Prof. Pedro Henrique Chagas Freitas 36

37 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. 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. As operações POP e PUSH são típicas de estruturas de dados largamente utilizadas em sistemas computacionais, conhecidas como Pilhas. Gabarito: Errado Prof. Pedro Henrique Chagas Freitas 37

38 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 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. Prof. Pedro Henrique Chagas Freitas 38

39 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 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 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 Prof. Pedro Henrique Chagas Freitas 39

40 Fechamos por aqui, encontro você querido aluno (a) na nossa próxima aula. Bons estudos! Abração Prof. Pedro Henrique Chagas Freitas Se a vida não ficar mais fácil, trate de ficar mais forte. Lembre-se: JB Carvalho Prof. Pedro Henrique Chagas Freitas 40

41 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. 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. e) TAD é um tipo de dados que esconde a sua implementação de quem o manipula. Prof. Pedro Henrique Chagas Freitas 41

42 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 da estruturas possam ter. 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 estruturas indexadas necessitam de mais que um índice para identificar um de seus elementos. Prof. Pedro Henrique Chagas Freitas 42

43 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. 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. 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. Prof. Pedro Henrique Chagas Freitas 43

44 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 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 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. Prof. Pedro Henrique Chagas Freitas 44

45 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; 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 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 Prof. Pedro Henrique Chagas Freitas 45

46 c) Invertida d) Encadeada Circular e) Duplamente Encadeada 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. 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. Prof. Pedro Henrique Chagas Freitas 46

47 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. 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 13. (UNIRIO 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. Prof. Pedro Henrique Chagas Freitas 47

48 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ó. 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 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. Prof. Pedro Henrique Chagas Freitas 48

49 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. 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. Prof. Pedro Henrique Chagas Freitas 49

50 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. 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. 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). Prof. Pedro Henrique Chagas Freitas 50

51 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. 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 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 Prof. Pedro Henrique Chagas Freitas 51

52 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. 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 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 Prof. Pedro Henrique Chagas Freitas 52

53 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. 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. 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. Prof. Pedro Henrique Chagas Freitas 53

54 a) Insere no topo da pilha b) Remove do topo da pilha c) Nãoexiste 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 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 26. (CESPE 2015 MEC - Desenvolvedor) No que concerne aos aspectos de linguagens de programação, algoritmos, estrutura de Prof. Pedro Henrique Chagas Freitas 54

55 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). 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. 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. Prof. Pedro Henrique Chagas Freitas 55

56 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? 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. 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 Prof. Pedro Henrique Chagas Freitas 56

57 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. 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 Prof. Pedro Henrique Chagas Freitas 57

58 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. 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 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 Prof. Pedro Henrique Chagas Freitas 58

59 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 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 Prof. Pedro Henrique Chagas Freitas 59

60 d) Maior ou igual a 2 e) 0 ou 1 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 Prof. Pedro Henrique Chagas Freitas 60

61 Bibliografia LEISERSON, Charles E. Algoritmos: Teoria e Prática.MIT Press, RANGEL, José L. Introdução a estrutura de dados Prof. Pedro Henrique Chagas Freitas 61

62 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, é 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. Prof. Pedro Henrique Chagas Freitas 62

63 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: a) Lista encadeada dupla. b) Lista encadeada simples. c) Pilha d) Fila e) Vetor Prof. Pedro Henrique Chagas Freitas 63

64 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: a) Binária b) Balanceada c) Invertida d) Encadeada Circular e) Duplamente Encadeada 12. (CESGRANRIO 2014 Banco da Amazônia Analista de Sistemas) Uma lista duplamente encadeada tem como característica ser formada por elementos que Prof. Pedro Henrique Chagas Freitas 64

65 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 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ó. 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 Prof. Pedro Henrique Chagas Freitas 65

66 itens em ordem linear, sem, no entanto, exigir que eles ocupem posições consecutivas na memória. 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. 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. 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. 19. (CESPE 2010 DETRAN-ES Analista de Sistemas) No armazenamento de dados pelo método FIFO (First in First out), a Prof. Pedro Henrique Chagas Freitas 66

67 estrutura de dados é representada por uma fila, em cuja posição final ocorrem inserções e, na inicial, retiradas. 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 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. 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. Prof. Pedro Henrique Chagas Freitas 67

68 a) Árvore b) Deque c) Fila d) Lista e) Pilha 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. 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. 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 Prof. Pedro Henrique Chagas Freitas 68

69 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). 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. 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 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. Prof. Pedro Henrique Chagas Freitas 69

70 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. 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. 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 32. (FCC 2016 AL-MS Programador Visual)Considere a figura abaixo. Prof. Pedro Henrique Chagas Freitas 70

71 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 profundida delimitada c) Binária com profundidade ilimitada d) Em diretórios e) Sequencial com hyperlinks 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 Prof. Pedro Henrique Chagas Freitas 71

72 Gabarito 1. Correto. 2. Letra E. 3. Correto. 4. Errado. 5. Correto. 6. Correto. 7. Errado. 8. LetraA. 9. Correto. 10. Letra D. 11. Letra D. 23. Errado. 24. Letra E 25. Letra C 26. Correto 27. Correto 28. Letra D 29. Letra E 30. Errado 31. Letra D 32. Letra A 33. Letra B 12. Letra D. 13. Correto. 14. Correto. 15. Correto. 16. Correto. 17. Correto. 18. Errado. 19. Correto. 20. Letra A 21. Letra C 22. Letra C Prof. Pedro Henrique Chagas Freitas 72

73 Prof. Pedro Henrique Chagas Freitas 73

AULA 00 Programação Estrutura de Dados e Algoritmos Professor Pedro Henrique Chagas Freitas

AULA 00 Programação Estrutura de Dados e Algoritmos Professor Pedro Henrique Chagas Freitas AULA 00 Programação Estrutura de Dados e Algoritmos Professor Pedro Henrique Chagas Freitas 1 Tópicos da Aula Introdução a Estrutura de Dados...3 Vetores e Matrizes...10 Lista Encadeada Linear...14 Filas...24

Leia mais

AULA 00 Estrutura de Dados Professor Pedro Henrique Chagas Freitas

AULA 00 Estrutura de Dados Professor Pedro Henrique Chagas Freitas AULA 00 Estrutura de Dados Professor Pedro Henrique Chagas Freitas www.pontodosconcursos.com.br Prof. Pedro Henrique Chagas Freitas 1 Tópicos da Aula Apresentação... 3 Planejamento das Aulas... 8 Introdução

Leia mais

Bit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256

Bit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256 Bit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256 informações diferentes; Tipos Primitivos são implementados nas

Leia mais

Capítulo 8: Abstrações de dados

Capítulo 8: Abstrações de dados Capítulo 8: Abstrações de dados Ciência da computação: Uma visão abrangente 11a Edition by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Estruturas de dados básicas Matriz homogênea Matriz

Leia mais

Informática Parte 18 Prof. Márcio Hunecke

Informática Parte 18 Prof. Márcio Hunecke Escriturário Informática Parte 18 Prof. Márcio Hunecke Informática ORDENAÇÃO (MÉTODOS DA BOLHA, ORDENAÇÃO POR SELEÇÃO, ORDENAÇÃO POR INSERÇÃO, LISTA ENCADEADA, PILHA, FILA, NOÇÕES SOBRE ÁRVORE BINÁRIA)

Leia mais

Estrutura de Dados. Estrutura de Dados Recursividade. Exemplo: 5! = 5 x 4! 4! = 4 x 3! 3! = 3 X 2! 2! = 2 x 1! 1! = 1 x 0!

Estrutura de Dados. Estrutura de Dados Recursividade. Exemplo: 5! = 5 x 4! 4! = 4 x 3! 3! = 3 X 2! 2! = 2 x 1! 1! = 1 x 0! Rafael D. Ribeiro, M.Sc. rafaeldiasribeiro@gmail.com http://www.rafaeldiasribeiro.com.br Exemplo: 5! = 5 x 4! 4! = 4 x 3! 3! = 3 X 2! 2! = 2 x 1! 1! = 1 x 0! Fatorial de 0 = 1 Recursividade 1 Recursividade

Leia mais

Estrutura de Dados: Aula 3 - Linguagem C

Estrutura de Dados: Aula 3 - Linguagem C Estrutura de Dados: Aula 3 - Linguagem C Uso de Memória Alocação de memória Estática Ocorre em tempo de compilação no momento em que se define uma variável ou estrutura é necessário que se definam seu

Leia mais

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática

Leia mais

Edital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Edital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões Edital de Seleção 023/2018 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua

Leia mais

ICET CURSO: Ciência da Computação e Sistemas de Informação (Estrutura de Dados) Estudos Disciplinares Campus: Data: / / Nome:

ICET CURSO: Ciência da Computação e Sistemas de Informação (Estrutura de Dados) Estudos Disciplinares Campus: Data: / / Nome: ICET CURSO: Ciência da Computação e Sistemas de Informação (Estrutura de Dados) Estudos Disciplinares Campus: Data: / / Nome: RA: Turma: Questão 1 (ENADE Computação 2005) No famoso jogo da Torre de Hanói,

Leia mais

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões Edital de Seleção 024/2017 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: «Nome» INSCRIÇÃO: «Inscrição» Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome

Leia mais

Pilhas. ser acessada somente por uma de suas extremidades. pelo topo. S Uma pilha é uma estrutura linear de dados que pode

Pilhas. ser acessada somente por uma de suas extremidades. pelo topo. S Uma pilha é uma estrutura linear de dados que pode Pilhas e Filas Pilhas Uma pilha é uma estrutura linear de dados que pode ser acessada somente por uma de suas extremidades. Uma pilha é uma lista LIFO (do inglês last-in-first out) o último a entrar é

Leia mais

Pilhas e Filas. Nádia Félix e Hebert Coelho

Pilhas e Filas. Nádia Félix e Hebert Coelho Pilhas e Filas Nádia Félix e Hebert Coelho Vários slides foram adaptados de Nina Edelwais e Renata Galante Estrutura de Dados Série de Livros Didáticos - Informática - UFRGS Pilhas e filas Listas lineares

Leia mais

Estrutura de Dados. Aleardo Manacero Jr.

Estrutura de Dados. Aleardo Manacero Jr. Estrutura de Dados Aleardo Manacero Jr. Programa Tipos abstratos de Dados (semana 1) Listas, pilhas e filas (semana 1) Árvores (semanas 2, 3 e 4) Tabelas Hash (espalhamento) (semana 5) Gerenciamento de

Leia mais

# Estrutura de Dados # Aula 06 Pilhas Estáticas. Prof. Leinylson Fontinele Pereira

# Estrutura de Dados # Aula 06 Pilhas Estáticas. Prof. Leinylson Fontinele Pereira # Estrutura de Dados # Aula 06 Pilhas Estáticas Prof. Leinylson Fontinele Pereira Na aula anterior... Filas Estáticas Sequencial # Propriedades # Operações fundamentais Introdução 3 O que vamos aprender?

Leia mais

S U M Á R I O. Definição de Estrutura de Dados. Vetores. Listas Ligadas. Pilhas. Filas

S U M Á R I O. Definição de Estrutura de Dados. Vetores. Listas Ligadas. Pilhas. Filas ESTRUTURA DE DADOS DEBORAH FERREIRA S U M Á R I O Definição de Estrutura de Dados 1 Vetores 2 Listas Ligadas 4 Pilhas 6 Filas 8 D E F I N I Ç Ã O D E E S T R U T U R A D E D A D O S Estruturas de dados

Leia mais

Aula 7 e 8 Filas e suas Aplicações. Prof. Leticia Winkler

Aula 7 e 8 Filas e suas Aplicações. Prof. Leticia Winkler Aula 7 e 8 Filas e suas Aplicações Prof. Leticia Winkler 1 Definição de Fila (Queue) São estruturas de dados do tipo FIFO (first-in first-out) - o primeiro elemento a ser inserido, será o primeiro a ser

Leia mais

Estruturas de Dados Filas

Estruturas de Dados Filas Estruturas de Dados Filas Roteiro Introdução Definição de Fila (Queue) Aplicações Operações sobre Fila Implementação de Fila Com vetores Com listas encadeadas Exercícios Introdução Estamos acostumados

Leia mais

Edital de Seleção 053/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Edital de Seleção 053/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões Edital de Seleção 053/2016 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua

Leia mais

Estruturas de Dados Apresentação

Estruturas de Dados Apresentação Estruturas de Dados Apresentação Prof. Eduardo Alchieri Objetivos Apresentar técnicas fundamentais na análise e projeto de estruturas de dados em programas computacionais Vamos aprender: Quais são as principais

Leia mais

Estruturas de Dados Estruturas de Dados Fundamentais

Estruturas de Dados Estruturas de Dados Fundamentais Estruturas de Dados Estruturas de Dados Fundamentais Prof. Eduardo Alchieri Estruturas de Dados Fundamentais Todos os tipos abstratos de dados (pilhas, filas, deques, etc.) podem ser implementados usando

Leia mais

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Listas e Filas Estruturas de Dados 2 Estrututuras de dados lineares Pilhas (stack) Estrutura de dados onde a inserção

Leia mais

Algoritmos e Estruturas de Dados II IEC013. TAD, Pilhas e Filas. Prof. César Melo

Algoritmos e Estruturas de Dados II IEC013. TAD, Pilhas e Filas. Prof. César Melo Algoritmos e Estruturas de Dados II IEC013 TAD, Pilhas e Filas Prof. César Melo TAD: Definição SE programa = definição de um tipo de dados + operação sobre dados desse tipo + restrições sobre dados e operações

Leia mais

Dados Gerais. Conteúdo. Tipos de Dados. Profa. Renata de Matos Galante

Dados Gerais. Conteúdo. Tipos de Dados. Profa. Renata de Matos Galante Dados Gerais INF 01203 Estruturas de Dados Profa. Renata de Matos Galante Prédio: 72 (43.424) Sala: 221 Ramal: 3308 7746 Página: www.inf.ufrgs.br/~galante Email: galante@inf.ufrgs.br Conteúdo Tipos de

Leia mais

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral SCC-214 Projeto de Algoritmos Thiago A. S. Pardo Listas e árvores Listas lineares Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral Diversas aplicações necessitam de estruturas

Leia mais

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula Tópicos Introdução Alocação sequencial Listas lineares,

Leia mais

Estrutura de dados - Listas Encadeadas

Estrutura de dados - Listas Encadeadas Estrutura de dados - Listas Encadeadas Prof. Leonardo Cabral da Rocha Soares leonardo.soares@newtonpaiva.br Centro Universitário Newton Paiva 25 de abril de 2019 Estrutura de dados - Listas Encadeadas

Leia mais

PRIMEIRA AVALIAÇÃO IDENTIFICAÇÃO. Nome: ID: 25/04/2005. PARTE I Questões Objetivas

PRIMEIRA AVALIAÇÃO IDENTIFICAÇÃO. Nome: ID: 25/04/2005. PARTE I Questões Objetivas Universidade Federal do Rio Grande do Sul Instituto de Informática Bacharelado em Ciência da Computação/ Engenharia da Computação INF 01203 Estruturas de Dados Professora: Renata de Matos Galante PRIMEIRA

Leia mais

AVALIAÇÃO DE CONHECIMENTO ESPECÍFICO

AVALIAÇÃO DE CONHECIMENTO ESPECÍFICO AVALIAÇÃO DE CONHECIMENTO ESPECÍFICO PROGRAMA DE PÓS- GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO 01. Toda arvore binária possui as seguintes propriedades: I. Todos os nós de uma sub- árvore direita são maiores

Leia mais

Aula 5 e 6 Pilhas e suas Aplicações. prof Leticia Winkler

Aula 5 e 6 Pilhas e suas Aplicações. prof Leticia Winkler Aula 5 e 6 Pilhas e suas Aplicações prof Leticia Winkler 1 Definição de Pilha (Stack) São estruturas de dados do tipo LIFO (last-in first-out) - o último elemento a ser inserido, será o primeiro a ser

Leia mais

- UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação

- UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação Programação 1I Prof. Osório Lista Linear Seqüencial (Alocação Estática) Pag.: 1 - UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação Programação

Leia mais

Algoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira.

Algoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira. Algoritmos e Estrutura de Dados II Árvore Prof a Karina Oliveira kkco@dei.unicap.br Introdução Estruturas de dados lineares (pilha, fila) são estruturas que guardam coleções de elementos que são acessados

Leia mais

Estrutura de Dados II

Estrutura de Dados II Estrutura de Dados II Introdução à Estrutura de Dados www.aeciocosta.com.br aecio.costa@faculdadeguararapes.edu.br Estrutura de Dados Estrutura de dados é um modo particular de armazenamento e organização

Leia mais

ASSOCIAÇÃO PARAIBANA DE ENSINO RENOVADO FACULDADE PARAIBANA DE PROCESSAMENTO DE DADOS ESTRUTURA DE DADOS

ASSOCIAÇÃO PARAIBANA DE ENSINO RENOVADO FACULDADE PARAIBANA DE PROCESSAMENTO DE DADOS ESTRUTURA DE DADOS ASSOCIAÇÃO PARAIBANA DE ENSINO RENOVADO FACULDADE PARAIBANA DE PROCESSAMENTO DE DADOS ESTRUTURA DE DADOS INTRODUÇÃO O que é uma Estrutura de Dados (ED)?? Tipos de Dados? Estruturas de Dados e? Tipos Abstratos

Leia mais

Pilhas Acesso. Pilha. Fila. Listas lineares especiais. Pilhas e Filas. Listas lineares especiais mais usuais. Disciplina restrita

Pilhas Acesso. Pilha. Fila. Listas lineares especiais. Pilhas e Filas. Listas lineares especiais mais usuais. Disciplina restrita Listas lineares especiais s Acesso consulta inserção remoção Disciplina restrita de acesso Disciplina restrita acesso permitido somente em alguns nós Listas lineares especiais mais usuais LIFO Last In

Leia mais

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira Árvores SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Listas e árvores Listas lineares Um nó após o outro, adjacentes Nó sucessor e antecessor Diversas aplicações necessitam de estruturas

Leia mais

Edital de Seleção 055/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Edital de Seleção 055/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões Edital de Seleção 055/2017 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua

Leia mais

ANHANGUERA ESTRUTURA DE DADOS AULA 02 O QUE É ESTRUTURA DE DADOS? Prof. Thomás da Costa

ANHANGUERA ESTRUTURA DE DADOS AULA 02 O QUE É ESTRUTURA DE DADOS? Prof. Thomás da Costa ANHANGUERA 2015.2 ESTRUTURA DE DADOS AULA 02 Prof. Thomás da Costa thomascosta@aedu.com Recordar é viver Lembrando Programação Estruturada: Estrutura de um programa em C++. Declaração de variáveis. Laços.

Leia mais

Algoritmos e Estruturas de Dados II IEC013

Algoritmos e Estruturas de Dados II IEC013 Algoritmos e Estruturas de Dados II IEC013 TAD, Pilhas e Filas Prof. César Melo Todos os créditos ao Prof. Leandro Galvão TAD: Definição SE programa = definição de um tipo de dados + operação sobre dados

Leia mais

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Árvores (parte 3) Estruturas de Dados 2 Organização dos dados: Linear: Listas, pilhas, filas. Relação sequencial.

Leia mais

TCC Prof.: Leandro A. F. Fernandes Conteúdo: Listas Lineares

TCC Prof.: Leandro A. F. Fernandes  Conteúdo: Listas Lineares Programação de Computadores II TCC 00.174 Prof.: Leandro A. F. Fernandes www.ic.uff.br/~laffernandes Conteúdo: Material elaborado pelos profs. Anselmo Montenegro e Marcos Lage com contribuições do prof.

Leia mais

Aula 07: Algoritmos de busca e Listas encadeadas

Aula 07: Algoritmos de busca e Listas encadeadas BC1424 Algoritmos e Estruturas de Dados I Aula 07: Algoritmos de busca e Listas encadeadas Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q-2016 1 Busca de um elemento 2 Exemplo: Busca de um elemento

Leia mais

Estruturas de Dados. Prof.: Carlos Alberto Página da Disciplina:

Estruturas de Dados. Prof.: Carlos Alberto Página da Disciplina: Estruturas de Dados Prof.: Carlos Alberto Página da Disciplina: http://alged.webnode.com/ E-mail: carlos36_batista@yahoo.com.br Estruturas de dados Programa da disciplina Estruturas de dados - referências

Leia mais

ÁRVORES E ÁRVORES BINÁRIAS. Adaptado de Alexandre P

ÁRVORES E ÁRVORES BINÁRIAS. Adaptado de Alexandre P ÁRVORES E ÁRVORES BINÁRIAS Adaptado de Alexandre P ROTEIRO Contextualização Árvores Árvores Binárias ROTEIRO Contextualização Árvores Árvores Binárias CONTEXTUALIZAÇÃO Importância de estruturas unidimensionais

Leia mais

Edital de Seleção 016/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Edital de Seleção 016/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões Edital de Seleção 016/2018 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua

Leia mais

PCC104 - Projeto e Análise de Algoritmos

PCC104 - Projeto e Análise de Algoritmos PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Túlio A. M. Toffolo) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade

Leia mais

REVISÃO DE PILHAS E FILAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

REVISÃO DE PILHAS E FILAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REVISÃO DE PILHAS E FILAS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos PILHAS E FILAS São tipos especiais de listas com disciplina restrita de acesso Acesso Consulta Inserção Remoção Disciplina

Leia mais

Informática Parte 17 Prof. Márcio Hunecke

Informática Parte 17 Prof. Márcio Hunecke Escriturário Informática Parte 17 Prof. Márcio Hunecke Informática BUSCA SEQUENCIAL E BUSCA BINÁRIA SOBRE ARRAYS Busca sequencial em vetores não ordenados O termo busca sequencial (ou busca linear) expressa

Leia mais

INF Prof. Daltro José Nunes Profa. Renata de Matos Galante. Estruturas de Dados. tica

INF Prof. Daltro José Nunes Profa. Renata de Matos Galante. Estruturas de Dados. tica INF 01126 Estruturas de Dados Prof. Daltro José Nunes Profa. Renata de Matos Galante UFRGS NF 01126 - Estruturas de Dados Matemá Dados Gerais Email: galante@inf.ufrgs.br Prédio: 72 (43.424) Sala: 221 Ramal:

Leia mais

O que é um jogo digital?

O que é um jogo digital? O que é um jogo digital? Programa de Computador Dados Algoritmos Para que estudar Estrutura de Dados? Para manipular os dados dos programas usamos os ALGORITMOS e para organizar os dados da melhor forma

Leia mais

Capítulo 20. Estruturas de Dados Dinâmicas. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 20. Estruturas de Dados Dinâmicas. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 20 Estruturas de Dados Dinâmicas Objetivos do Capítulo Caracterizar as estruturas de dados dinâmicas. Apresentar implementações para três diferentes estruturas de dados: as pilhas, as filas e

Leia mais

Alocação Seqüencial VAL MAX TOPO

Alocação Seqüencial VAL MAX TOPO 306 Alocação Encadeada Como vimos, uma fila nada mais é do que uma lista com uma disciplina de acesso. Logo, podemos nos utilizar de todos os conceitos vistos em listas para implementarmos filas. Por exemplo,

Leia mais

Algoritmos e Estruturas de Dados II IEC013

Algoritmos e Estruturas de Dados II IEC013 Algoritmos e Estruturas de Dados II IEC013 Revisão: Listas Encadeadas Prof. César Melo Todos os créditos reservados ao professor Leandro Galvão Listas Encadeadas Listas encadeadas ou listas ligadas representam

Leia mais

Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1

Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1 Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1 - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) PIP/CA - Programa Interdisciplinar de Pós-Graduação

Leia mais

Árvores Conceitos gerais

Árvores Conceitos gerais http://www.mysticfractal.com/ FractalImaginator.html Árvores Conceitos gerais 9/11 Nesta aula veremos conceitos e definições sobre árvores Diferentemente das estruturas de pilhas, filas e listas que são

Leia mais

INF1007: Programação 2 8 Listas Encadeadas. (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2 8 Listas Encadeadas. (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 8 Listas Encadeadas (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Motivação Listas encadeadas Implementações recursivas Listas de tipos estruturados (c) Dept. Informática

Leia mais

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Árvores (parte 2) Estruturas de Dados 2 Organização dos dados: Linear: Listas, pilhas, filas. Relação sequencial.

Leia mais

Árvores, Árvores Binárias e Árvores Binárias de Pesquisa. Rui Jorge Tramontin Jr.

Árvores, Árvores Binárias e Árvores Binárias de Pesquisa. Rui Jorge Tramontin Jr. Árvores, Árvores Binárias e Árvores Binárias de Pesquisa Rui Jorge Tramontin Jr. Tópicos Abordados Introdução Definição de Árvore Árvores Binárias Árvores Binárias de Pesquisa (ABP) UDESC / Rui J. Tramontin

Leia mais

Aplicações de listas Outras estruturas

Aplicações de listas Outras estruturas Aplicações de listas Outras estruturas SCC-22 Algoritmos e Estruturas de Dados I Lucas Antiqueira Grandes números 2 Grandes números Problema: lidar com números muito grandes Em C, inteiros (mesmo long

Leia mais

Filas Exemplo de Aplicação

Filas Exemplo de Aplicação Filas Exemplo de Aplicação Uma aplicação interessante para filas é a ordenação por distribuição, descrita a seguir. Seja uma lista l composta de n chaves, cada qual representada por um inteiro numa base

Leia mais

3.2.2 Pilha (LIFO - last in, first out) - Inserção e remoção apenas no final da lista.

3.2.2 Pilha (LIFO - last in, first out) - Inserção e remoção apenas no final da lista. 3. Estruturas Lineares (Listas Lineares) 3.1 Definição Uma lista linear é uma estrutura dinâmica caracterizada por uma seqüência ordenada, no sentido de sua posição relativa, de elementos (nós) L[1], L[2],,

Leia mais

Matriz(vetor Multidimensional)

Matriz(vetor Multidimensional) Matriz(vetor Multidimensional) Matriz segundo Laureano(2008) é...um arranjo bidimensional ou multidimensional de alocação estática e seqüencial., ou seja, uma estrutura de várias dimensões, que mantém

Leia mais

Universidade Federal do Ma Curso de Ciência da Computação

Universidade Federal do Ma Curso de Ciência da Computação Universidade Federal do Ma Curso de Ciência da Computação Estrutura de Dados Prof. Anselmo C. de Paiva Depto de Informática Limitações dos vetores Vetores Simples, Rápidos Mas, é necessário especificar

Leia mais

Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 03 Pag.: 1

Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 03 Pag.: 1 lgoritmos e Estruturas de ados Prof Osório PIP/ - ula 03 Pag: 1 - UNIVERSIE O VLE O RIO OS SINOS ENTRO E IÊNIS EXTS E TENOLÓGIS (6/6) PIP/ - Programa Interdisciplinar de Pós-Graduação em omputação plicada

Leia mais

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Árvores (parte 4) Estruturas de Dados 2 Organização dos dados: Linear: Listas, pilhas, filas. Relação sequencial.

Leia mais

Sumário. 1.1 Variáveis Globais e Locais Passagem de Parâmetro (por valor por referência) 1

Sumário. 1.1 Variáveis Globais e Locais Passagem de Parâmetro (por valor por referência) 1 Sumário Sobre as Autoras ix Introdução xi 1 Sub-rotinas 1 1.1 Variáveis Globais e Locais 1 1.2 Passagem de Parâmetro (por valor por referência) 1 2 Vetores e Matrizes 7 2.1 Vetores 7 2.2 Matrizes 8 2.2.1

Leia mais

Estruturas de Dados Pilhas, Filas, Listas

Estruturas de Dados Pilhas, Filas, Listas Estruturas de Dados Pilhas, Filas, Listas Fabio Gagliardi Cozman Thiago Martins PMR3201 Escola Politécnica da Universidade de São Paulo Estruturas de Dados Pilhas, Filas, Listas Introdução Estruturas de

Leia mais

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher TGR BCC Representação Computacional de Grafos Prof. Ricardo José Pfitscher Cronograma Representação Matriz de djacências Lista de djacências Matriz de Incidências Representação Como podemos representar

Leia mais

Estruturas de Dados - Filas

Estruturas de Dados - Filas Estruturas de Dados - Filas Leandro Tonietto ltonietto@unisinos.br Algoritmos e Estruturas de Dados em C++ Unisinos http://www.inf.unisinos.br/~ltonietto/jed/aed/filas.pdf Abr-8 Uma fila (queue) é uma

Leia mais

aula05 September 6, 2018

aula05 September 6, 2018 aula05 September 6, 018 In [1]: from IPython.display import HTML from IPython.display import Image 1 Filas de Prioridade 1. Estrutura de Dados do tipo pilha e fila são consideradas listas especializadas..

Leia mais

Aula 14 Listas Duplamente Encadeadas. prof Leticia Winkler

Aula 14 Listas Duplamente Encadeadas. prof Leticia Winkler Aula 14 Listas Duplamente Encadeadas prof Leticia Winkler 1 Lista Duplamente Encadeada É um tipo de lista encadeada que pode ser vazia (NULL) ou que pode ter um ou mais nós, sendo que cada nó possui dois

Leia mais

Estruturas de Dados Encadeadas

Estruturas de Dados Encadeadas CURSO: Ciência da Computação DATA: / / 2016 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 14 APRESENTAÇÃO Na aula de hoje vamos apresentar e discutir conceitos

Leia mais

Fila e Deque. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.

Fila e Deque. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Fila e Deque SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências

Leia mais

INE5384 Estruturas de Dados. Sumário

INE5384 Estruturas de Dados. Sumário UFSC-CTC-INE Curso de Ciência da Computação INE5384 Estruturas de Dados Turma 322B Prof. Ronaldo S. Mello 2002/2 Introdução Listas Sumário Árvores Métodos de Pesquisa de Dados Métodos de Ordenação de Dados

Leia mais

Árvores Binárias. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich

Árvores Binárias. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich Árvores Binárias SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista. Figuras editadas por Isadora Maria Mendes http://www.icmc.usp.br/~paulovic

Leia mais

2. Listas 3. Listas ligadas simples 4. Operações dentro das listas 5. Listas Circulares 6. Listas Duplamente Ligadas 7. Pilhas 8.

2. Listas 3. Listas ligadas simples 4. Operações dentro das listas 5. Listas Circulares 6. Listas Duplamente Ligadas 7. Pilhas 8. Profa. Dra. Laura Rodríguez E-mail: lmrodrig@uma.pt Universidade da Madeira 1. Introdução 2. Listas 3. Listas ligadas simples 4. Operações dentro das listas 5. Listas Circulares 6. Listas Duplamente Ligadas

Leia mais

Slide 01 16/03/2017. Estruturas de Dados. Prof. Cleziel Franzoni da /Cleziel.

Slide 01 16/03/2017. Estruturas de Dados. Prof. Cleziel Franzoni da /Cleziel. Slide 01 16/03/2017 Estruturas de Dados Prof. Cleziel Franzoni da Costa 1 @Cleziel /Cleziel cleziel@hotmail.com 42 3 EMENTA Listas lineares e suas variações. Filas e pilhas. Árvores binárias e suas variações.

Leia mais

Aplicações de listas e outras estruturas

Aplicações de listas e outras estruturas 19/1/11 Aplicações de listas e outras estruturas SCC- Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Grandes números Problema: lidar com números muito grandes Em C, inteiros (mesmo long int)

Leia mais

Estruturas de Dados I

Estruturas de Dados I Estruturas de Dados I Rodrigo Porfírio da Silva Sacchi rodrigosacchi@ufgd.edu.br 3410-2075 Aula 6: Listas Encadeadas e Alocação Dinâmica Listas Encadeadas e Alocação Dinâmica Alocação Seqüencial versus

Leia mais

Estruturas de Dados Pilhas, Filas, Listas

Estruturas de Dados Pilhas, Filas, Listas PMR2300 Escola Politécnica da Universidade de São Paulo Introdução Estruturas de dados são objetos que armazenam dados de forma eficiente, oferecendo certos serviços para o usuário (ordenação eficiente

Leia mais

CAP Exame de Admissão 16/12/2013. Instruções Gerais (leia atentamente)

CAP Exame de Admissão 16/12/2013. Instruções Gerais (leia atentamente) CAP 2014 Exame de Admissão 16/12/2013 Nome do Candidato: Identidade: Instruções Gerais (leia atentamente) O tempo total de duração do exame será de 2 horas. Você receberá uma Folha de Respostas junto com

Leia mais

Árvores Genéricas de Busca

Árvores Genéricas de Busca Árvores Genéricas de Busca Árvores não binárias também podem ser usadas para buscar elementos. Essas árvores são chamadas de árvores genéricas de busca, e elas podem ser de dois tipos: árvore de busca

Leia mais

Listas Ligadas (Encadeadas) Listas Simplesmente Encadeadas

Listas Ligadas (Encadeadas) Listas Simplesmente Encadeadas Listas Ligadas (Encadeadas) Matrizes são estruturas de dados muito úteis fornecidas nas linguagens de programação. No entanto, elas têm pelo menos duas limitações: 1- Seu tamanho tem que ser conhecido

Leia mais

Estruturas de Dados em C++ Conceitos. Leandro Tonietto jun-09

Estruturas de Dados em C++ Conceitos. Leandro Tonietto jun-09 Estruturas de Dados em C++ Conceitos Leandro Tonietto jun-09 Estruturas de dados Armazenamento de vários registros de um mesmo tipo em uma única estrutura. Como visto até então, usando array simples: int

Leia mais

Árvores. N-árias, Binárias, Busca. Vanessa Maia Berny Mestrado em Ciência da Computação

Árvores. N-árias, Binárias, Busca. Vanessa Maia Berny Mestrado em Ciência da Computação Árvores N-árias, Binárias, Busca Vanessa Maia Berny Mestrado em Ciência da Computação Disciplina de Estrutura de Dados Prof. Dr. Luzzardi, Paulo Roberto Gomes Abril de 2008 Árvores N-árias São estruturas

Leia mais

Árvores & Árvores Binárias

Árvores & Árvores Binárias Árvores & Árvores Binárias Problema Implementações do TAD Lista Linear Lista encadeada eficiente para inserção e remoção dinâmica de elementos, mas ineficiente para busca Lista seqüencial (ordenada) Eficiente

Leia mais

Algoritmo da IFT 2 / 16. Algoritmo da IFT Estrutura da fila de prioridade Resolvendo empates. Algoritmo 1 Algoritmo geral da IFT

Algoritmo da IFT 2 / 16. Algoritmo da IFT Estrutura da fila de prioridade Resolvendo empates. Algoritmo 1 Algoritmo geral da IFT Transformada Imagem-Floresta (Estrutura de dados) Prof. Dr. Paulo A. V. de Miranda Instituto de Matemática e Estatística (IME), Universidade de São Paulo (USP) pmiranda@vision.ime.usp.br 1 / 16 Algoritmo

Leia mais

Instituto Luterano de Ensino Superior de Ji-Paraná Curso Bacharelado em Informática Estrutura de Dados I Prof.: José Luiz A.

Instituto Luterano de Ensino Superior de Ji-Paraná Curso Bacharelado em Informática Estrutura de Dados I Prof.: José Luiz A. 1 Instituto Luterano de Ensino Superior de Ji-Paraná Curso Bacharelado em Informática Prof.: José Luiz A. Duizith Procedimento Insere_Esquerda (Lista,Valor) Aloque(Aux) Se (Aux = Nil) Senao Aux.Dado Valor

Leia mais

Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros:

Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros: Fontes Bibliográficas Estruturas de Dados Aula 15: Árvores Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos (Nivio Ziviani): Capítulo 5; Estruturas

Leia mais

ÁRVORE B. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

ÁRVORE B. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ÁRVORE B Vanessa Braganholo Estruturas de Dados e Seus Algoritmos INTRODUÇÃO 2 ARQUIVOS DE ACESSO DIRETO Basicamente, duas formas de acesso a um registro: Acesso via cálculo do endereço do registro (hashing)

Leia mais

Estruturas de Dados. Profº Carlos Alberto Teixeira Batista

Estruturas de Dados. Profº Carlos Alberto Teixeira Batista Estruturas de Dados Profº Carlos Alberto Teixeira Batista E-mail: carlos.batista@facape.br carlos36_batista@yahoo.com.br Lista Linear São estruturas formadas por um conjunto de dados de forma a preservar

Leia mais

Estrutura de Dados e Arquivos Ementa Objetivo Geral Conteúdo Avaliação

Estrutura de Dados e Arquivos Ementa Objetivo Geral Conteúdo Avaliação Faculdades NDA Plano de Ensino Curso:SISTEMAS DE INFORMAÇÃO Disciplina: Estrutura de Dados e Arquivos Carga horária semanal: 4 Ano: 2006 Turma: MD3 e ME3 Carga horária total: 80 Corpo docente: Ly Freitas

Leia mais

Lista Encadeada (Linked List)

Lista Encadeada (Linked List) Lista Encadeada (Linked List) As listas ou listas encadeadas são a estrutura de dados mais simples concebível excetuando-se naturalmente os arrays. Listas encadeadas nada mais são que uma seqüência de

Leia mais

Árvores. Listas e árvores. Árvores. Árvores. Árvores. Árvores 03/11/2011. Listas lineares

Árvores. Listas e árvores. Árvores. Árvores. Árvores. Árvores 03/11/2011. Listas lineares istas e árvores istas lineares Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral S-502 lgoritmos e struturas de ados iversas aplicações necessitam de estruturas mais complexas

Leia mais

Dicionários. TAD Orientado a conteúdo

Dicionários. TAD Orientado a conteúdo Dicionários TAD Orientado a conteúdo Dicionários efinição: Tipo abstrato de dados orientado a onteúdo. Contrasta com as PILHAs e FILAs que são orientadas a posição. perações implementadas: Inserir(d,x)

Leia mais

Listas. Aula 01. DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria

Listas. Aula 01. DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria Engenharia de CONTROLE e AUTOMAÇÃO Listas Aula 01 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria beltrame@mail.ufsm.br 1/ Sumário

Leia mais

Universidade de São Paulo

Universidade de São Paulo Universidade de São Paulo Instituto de Ciências Matemáticas e Computação SCE5763 - Tipos e Estrutura de Dados - Luis Gustavo Nonato 2 a Lista de Exercícios 1. Seja A um array de inteiros. Escreva algoritmos

Leia mais