Estruturas de Dados Básicas
Listas Lineares
● Estruturas formadas por um conjunto de dados de forma a preservar a relação
de ordem linear entre eles.
● Uma lista contém nós, os quais são acessados através de operações que esta
lista possui
● Operações mais comuns
– criar um a lis ta vaz ia
– verificar s e um a lis ta e s tá vaz ia – obte r o tam anho da um a lis ta
– obte r/m odificar o valor do e le m e nto e m um a dete rm inada pos ição na lis ta – obte r a pos ição de e lem ento cujo valor é dado
– ins e rir um novo e le m ento após (ou ante s ) um a de te rm inada pos ição na lis ta – re m ove r um e lem ento em um a de te rm inada pos ição da lis ta
3
Listas Lineares
●
Formas de Implementação
–
Vetores
–
Listas encadeadas
●
Quando utilizar vetores?
●
Quando utilizar Listas Encadeadas?
●
Quais as vantagens e desvantagens de cada
Listas Lineares
●
Vetores
–
Os Itens da Lista são armazenados em posições
contíguas de memória
–
Precisa-se definir, de antemão, o tamanho do
5
Listas Lineares
●
Vetores
–
Os Itens da Lista são armazenados em posições
contíguas de memória
–
Precisa-se definir, de antemão, o tamanho do
Listas Lineares
●
Vetores
–
A inserção de um item após o último item da lista é feita a
custo constante
–
A inserção de um novo item no meio da lista requer o
deslocamento de todos os itens localizados após o ponto
de inserção.
–
Retirar um item no início da lista requer um deslocamento
de itens para preencher o espaço deixado vazio.
–
O acesso a um elemento qualquer do vetor é feito de forma
7
Listas Lineares
●
Listas encadeadas
–
Cada item da lista contém, além do próprio conteúdo,
a informação que é necessária para alcançar o
próximo item.
–
A alocação de memória não é contígua
–
Alocação de itens da lista ocorre sob demanda.
–
A inserção ou retirada de elementos não desloca os
Listas Lineares
●
Listas encadeadas
–
Tem-se como desvantagem a alocação de
memória extra para armazenar as referências
–
Para acessar o e-nésimo item de uma lista é
necessário percorrer todos os itens da lista até
chegar a posição necessária.
9
Pilhas
●
Lista linear em que as inserções, retiradas e acessos ocorrem
sempre em um dos extremos da lista.
●
São também chamadas de listas lifo (Last-in First-out)
●
Operações notáveis:
– Empilhar → coloca um item no topo da pilha (PUSH)
– Desempilhar → retira o item que se encontra no todo da pilha (POP). – Retornas o item que se encontra no topo da pilha (TOP)
Filas
●
Listas lineares em que todas as inserções são
realizadas em um extremo da lista e todas as
retiradas em outro extremo.
●
Também chamada de listas FIFO (in
First-Out)
●
Operações notáveis
–
Enfileirar → insere um item no final da fila
–
Desenfileirar → retira o item que se encontra no
11
Listas Encadeadas Circulares
●
É uma lista encadeada em que o último item
da lista passa a apontar para o primeiro
elemento da lista.
Listas duplamente encadeadas
●
É uma lista encadeada em que um item,
apresenta, além de seu próprio conteúdo e
uma referência para a célula seguinte, uma
referência para a célula anterior.
13
1 – CESGRANRIO – BNDES 2009 – Analista de Sistemas
– Desenvolvimento
15
3 – CESGRANRIO 2009 – FUNASA - Analista de Suporte
de Sistemas
17
5 – CESGRANRIO 2012 – Casa da Moeda – Desenvolvimento
de Sistemas
19
FCC 2010 – DPE-SP – Agente de Defensoria – Programador
Em relação às estruturas de dados, JULGUE:
7. Um tipo abstrato de dados está desvinculado de sua implementação, ou seja, a sua definição visa a preocupação com o que ele faz e não como ele faz.
8. A lista duplamente encadeada além de saber o próximo nó, cada elemento também conhece o nó anterior a ele na lista, o que facilita a remoção de um elemento e a exibição dos elementos na ordem inversa.
9. A implementação dinâmica de pilhas possui as mesmas vantagens que as listas dinâmicas, ou seja, não é necessário saber a quantidade máxima de elementos que serão armazenados.
FCC 2010 – DPE-SP – Agente de Defensoria – Programador
Considerando as definições de estruturas de dados e a
declaração tipo nó :: reg (dado: inteiro; próximo: ref nó), na qual
reg é um registro contendo os campos: dado, que guarda valores
inteiros, e próximo, que guarda endereço de outro nó, assinale a
opção correta.
10 - O tipo nó é inadequado para implementar estruturas de
dados do tipo pilha.
11 - Uma lista duplamente encadeada é uma lista em que o seu
último elemento referencia o primeiro
21
12 – FCC 2009 – TRT16 – Técnico Judiciário – TI
Pilha é uma estrutura de dados
a) cujo acesso aos seus elementos segue tanto a lógica LIFO quanto a FIFO. b) cujo acesso aos seus elementos ocorre de forma aleatória.
c) que pode ser implementada somente por meio de vetores. d) que pode ser implementada somente por meio de listas.
13 – CESPE 2009 – TRE-MA – Técnico Judiciário –
Programação de Sistemas
A técnica LIFO (last in first out), utilizada em programação estruturada,
é fundamentada no conceito de
a) pilha.
b) loop.
c) fila.
d) ponteiro.
e) array.
23
14 – FCC 2009 – TJ-SE – Técnico Judiciário – Programação de
Sistemas
Uma estrutura de dados em lista duplamente encadeada permite na cadeia movimentos para
a) frente, apenas. b) trás, apenas.
c) cima e para baixo ou para frente e para trás. d) cima e para baixo, apenas.
CESPE 2010 – BASA – TI – Análise de Sistemas
Julgue os itens que se seguem, acerca dos conceitos
relacionados às estruturas de dados.
15 - Em um programa existe a necessidade de guardar todas as
alterações feitas em determinado dado para que seja possível desfazer alterações feitas ao longo de toda a sua existência. Nessa situação, a estrutura de dados mais adequada para o armazenamento de todas as alterações citadas seria uma fila.
16 - Uma pilha pode ser considerada uma lista à qual foram impostas restrições quanto à forma de manipulação dos dados nela armazenados. 17 - Em uma lista encadeada, o tempo de acesso a qualquer um de
25
18 - FCC 2012 - MPE-AP - Técnico Ministerial -
Informática
Nas estruturas de dados,
a) devido às características das operações da fila, o primeiro
elemento a ser inserido será o último a ser retirado. Estruturas
desse tipo são conhecidas como LIFO.
b) as pilhas são utilizadas para controlar o acesso de arquivos que
concorrem a uma única impressora.
c) a fila é uma lista linear na qual as operações de inserção e
retirada ocorrem apenas no início da lista.
d) a pilha é uma lista linear na qual as operações de inserção e
retirada são efetuadas apenas no seu topo.
e) devido às características das operações da pilha, o último
elemento a ser inserido será o último a ser retirado. Estruturas
desse tipo são conhecidas como FIFO.
19 - FCC 2012 - TRE-CE - Técnico Judiciário -
Programação
de Sistemas
Sobre pilhas é correto afirmar:
a) Uma lista LIFO (Last-In/First-Out) é uma estrutura estática, ou seja, é uma coleção que não pode aumentar e diminuir durante sua existência. b) Os elementos na pilha são sempre removidos na mesma ordem em que foram inseridos.
c) Uma pilha suporta apenas duas operações básicas, tradicionalmente denominadas push (insere um novo elemento no topo da pilha) e pop (remove um elemento do topo da pilha).
d) Cada vez que um novo elemento deve ser inserido na pilha, ele é
colocado no seu topo e, em qualquer momento, apenas aquele posicionado no topo da pilha pode ser removido.
e) Sendo P uma pilha e x um elemento qualquer, a operação Push(P,x) diminui o tamanho da pilha P, removendo o elemento x do seu topo.
27
20 - CESGRANRIO 2012 – LIQUIGÁS – TI – DESENVOLVIMENTO DE
APLICAÇÕES
Esse trecho implementa uma classe que corresponde a uma
(A) fila de inteiros (B) pilha de inteiros
(C) árvore binária com valores inteiros nos nós (D) lista encadeada de inteiros
21 - CESGRANRIO 2012 – ANALISTA INFRAESTRUTURA
JÚNIOR – PETROQUÍMICA SUAPE
O que será exibido no console quando da sua execução? (A) 15 -3 20 -4 25 -6 (B) 25 20 15 (C) -3 -4 -6 (D) -6 -4 -3 (E) 15 20 25
29
22 - CESGRANRIO 2012 – ANALISTA INFRAESTRUTURA
JÚNIOR – PETROQUÍMICA SUAPE
Os processadores da linha Pentium utilizam uma estrutura de
dados bastante adequada à implementação de chamadas
de funções e procedimentos, principalmente as que envolvem recursão.Que estrutura de dados é essa? (A) Lista simplesmente encadeada (B) Lista duplamente encadeada (C) Lista circular
(D) Pilha (E) Fila
31
33
27 – CESGRANRIO 2013 – BNDES – Analista de
Sistemas – Desenvolvimento
35
27 – CESGRANRIO 2013 – BNDES – Analista de
Sistemas – Desenvolvimento
27 – CESGRANRIO 2013 – BNDES – Analista de
Sistemas – Desenvolvimento
37