SóProvas



Questões de Estrutura de Dados


ID
5092
Banca
CESGRANRIO
Órgão
EPE
Ano
2007
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Uma _________ B+ é uma estrutura de dados muito utilizada em banco de dados e sistemas de arquivos. Que palavra completa a frase corretamente?

Alternativas
Comentários
  • Em ciência da computação, uma Árvore B+ é um tipo de árvore. Representa a ordenação de dados de uma maneira que permita uma inserção e remoção eficiente de elementos. É um índice dinâmico de multi-níveis com ligações máximas e mínimas no número de chaves em cada nodo. Os sistemas de ficheiros NTFS para o Microsoft Windows, o sistema de ficheiros ReiserFS para Unix, o XFS para IRIX e Linux, e o JFS2 para AIX, OS/2 e Linux, usam este tipo de árvore.Uma árvore B+ é uma variação da árvore B. Numa árvore-B+, contrastando com uma árvore-B, todos dos dados são gravados nas folhas. Os nodos internos contêm apenas chaves e apontadores da árvore. Todas as folhas estão no mesmo nível mais baixo. Os nodos das folhas também estão ligados entre si como uma lista de ligações para efectuar consultas facilmente.Fonte: Wikipedia
  • Uma Árvore B+ é um tipo de árvore que representa a ordenação de dados de uma maneira que permita uma inserção e remoção eficiente de elementos. É um índice dinâmico de multi-níveis com ligações máximas e mínimas no número de chaves em cada nodo.

    Resposta: B


ID
5437
Banca
CESGRANRIO
Órgão
Petrobras
Ano
2006
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Insira as chaves {Lina, Ana, Lia, Ada, Lua, Sol, Cris, Bia, Rita, Mel, Rosa, Val} em uma árvore binária de busca (considere que a árvore está inicialmente vazia). Considere agora, a execução dos seguintes percursos sobre a estrutura após a inserção das chaves.

I - Um percurso em pré-ordem seria: { Ada, Bia, Cris, Lia, Ana, Mel, Rosa, Rita, Val, Sol, Lua, Lina}

II - Um percurso em ordem simétrica seria: {Val, Sol, Rosa, Rita, Mel, Lua, Lina, Lia, Cris, Bia, Ana, Ada}

III - Um percurso em nível seria: {Lina, Ana, Lua, Ada, Lia, Sol, Cris, Rita, Val, Bia, Mel, Rosa}

IV - Um percurso em pós-ordem seria: {Lina, Ana, Ada, Lia, Cris, Bia, Lua, Sol, Rita, Mel, Rosa, Val}

Estão corretos apenas os percursos indicados em:

Alternativas
Comentários
  • Pré-order: root, then left sub-tree, then right sub-tree
    Post-order: then left sub-tree, then right sub-tree, root
    symetric order: left sub-three, root, then right sub-tree
  • Os percursos em pré-ordem e pós-ordem estão invertidos (I é um percurso em pós-ordem e IV é um percurso em pré-ordem). Os outros dois estão corretos.
  • 1º) Ordenar alfabeticamente os nomes.2º) Substituir os nomes ordenados por números (1,2,3,4,5,6,7,8,9,10,11,12).3º) Substituir pelos números os nomes da lista original, ficando assim (6,2,5,1,7,11,4,3,9,8,10,12) onde 6 é Lia, 2 é Ana, 5 é Lia e assim por diante.4º) Distribuir na árvore binária lembrando que, se um número é menor que raiz ele fica a esquerda se é maior fica a direita e assim o número vai descendo os níveis tomando a direita ou esquerda do nó seguinte até se tornar folha (nó sem filho)IMAGEM DA ÁRVORE: http://img405.imageshack.us/img405/4049/screenhunter002.gifCom isso temos:I) ERRADO: na Pré Ordem comecaria pelo raiz (6) LinaII) CERTO: Se considerarmos que este percurso simetrico comecou pela esquerdaIII) CERTO: De cima para baixo da esquerda para a direitaIV) ERRADO: na Pós ordem o primeiro item seria (1) Ada.
  • O percurso simétrico (in ordem): E - D - V sempre retorna as chaves em ordem crescente.... Portanto o item 2 estaria errado. Na minha opnião esta questão deveria ter sido anulada.
  • também não concordo que o item II esteja correto. Ele está mostrando os elementos em ordem decrescente, o que nãocaracteriza a ordem simétrica.
  • Árvore Resultante:


    Pré-Ordem:     LINA ANA ADA LIA CRIS BIA LUA SOL RITA MEL ROSA VAL
    IN-Ordem:       ADA ANA BIA CRIS LIA LINA LUA MEL RITA ROSA SOL VAL
    POS-ORDEM: ADA ANA BIA CRIS LIA MEL ROSA RITA VAL SOL LUA LINA

    Simétrico: Já respondido no Ítem 2 (Segue a lógica: Da direita para a esquerda, visitando o PAI. Se filho esquerdo tem filho, visita o filho mais a direita, depois o seu Pai, e assim por diante.) Olhem a ilustração para facilitar o entendimento:

    Nível: Respondido item 3(Basta pegar de cima para baixo olhando a árvore resultante.

  • A questão deveria ser anulada pois o item II não está em ordem,(está invertido) . Quanto ao percurso em nível eu nunca ouvi falar , mas pela explicação do colega Leonardo eu tive uma idéia do que seja. A propósito na minha resolução em pós ordem ANA vem depois de LIA . Como não pude identificar nenhuma que estivesse correta, eu marcaria a b , pois apesar de invertida a ordem do item II bate, e eu não sei o percurso em nível mais sei que os outros itens estão incorretos.
  • Questãozinha complicada de se desenhar numa prova! A sugestão do amigo Ricardo de transformar em números é ótima! Depois de aplicar essa sugestão e de ver o link dele do desenho da árvore consegui matar a questão.
    O percurso em-ordem é sub-árvore esquerda, raiz e sub-árvore direita, mas na questão tem que ser usado o invertido (em-ordem simétrica). Por isso o item II está correto.
    A questão é muito boa para reforçar os conhecimentos sobre árvore de busca binária!
  • O comentário dessa questão está detalhadamente no link abaixo , página 13:

    https://issuu.com/liberbooksbr/docs/quest__es_comentadas_de_ti_para_con_9e2cd361f37179

  • A maneira mais fácil que eu encontrei pra fazer essa questão sem ter que montar toda a arvore em tabela alfabética é a seguinte:

    1 - Toda arvore binária criada do zero começa com o primeiro termo inserido

    ( com isso, sabemos que Lina é a raiz da árvore)

    2-Todo percurso Pré-Ordem começa com a Raiz da árvore, que seria Lina

    ( Isso já descarta a I , logo ACD estão erradas )

    Entre B e D, a única alternativa distinta entre ela é a IV

    3- Analisando IV:

    Sabe-se que percurso Pós-Ordem não começa com a raiz da árvore

    ( logo a IV está falsa pq sabemos que Lina é a Raiz da Arvore )

    Gabarito: B

    Assista esse vídeo que vc NUNCA MAIS vai esquecer como é feito os percursos(Pré-Ordem, In Ordem, Pós-Ordem)

    https://www.youtube.com/watch?v=OvMuKaG4Qhk&ab_channel=NetupProvedor

  • Questão errada, a única alternativa correta é a alternativa 3, que fala da busca em nível. Quanto a ordem simétrica, é a mesma coisa que o percurso in-order: E,R,D, a qual retornaria as chaves em ordem.


ID
7300
Banca
ESAF
Órgão
CGU
Ano
2004
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Analise as seguintes afirmações relativas a estruturas de dados:

I. Uma árvore binária qualquer de altura 3 tem no máximo 8 folhas.

II. Ao se transformar uma árvore genérica, formada apenas pela raiz e seus quatro filhos, em uma árvore binária, a árvore resultante terá apenas uma folha.

III. A única condição para uma árvore binária de pesquisa ser considerada balanceada é que, para cada nó, a altura da sub-árvore da esquerda seja igual à altura da sub-árvore da direita.

IV. Uma árvore binária de pesquisa balanceada deve ter o número de folhas igual ao número de nós.

Estão corretos os itens:

Alternativas
Comentários
  • I. Uma árvore binária qualquer de altura 3 tem no máximo 8 folhas.
    Esta afirmativa está correta?
    Creio eu que uma árvore de altura teria no máximo 1 folha no 1º nível, 2 no 2º nível e 4 no 3º nível. Somando teríamos um número máximo de 7 folhas, e não de 8 como descrito.
  • I - (True). From Wikipedia: (The height of a tree is the length of the path from the root to the deepest node in the tree. A (rooted) tree with only one node (the root) has a height of zero.) Therefore the max size of a nth binary tree is: SUM from i=1 to i=n of 2^n + 1.
    n = 1 --> 2 + 1 = 3
    n = 2 --> 4 + 2 + 1 = 7
    n = 3 --> 8 + 4 + 2 + 1 = 11.

    But see, the item says about the NUMBER OF LEAFS. In this case the deepest level has 8 nodes and all of them are leafs.

    II - (False) A binary tree with 5 nodes can have either (3, 2 or 1 leafs) depending how the tree is drawn. 1 leaf node is only one of the possible trees, it's wrong state, as a mandatory rule, that it'll only have 1 leaf node.
  • Ola reinaldo, a sua afirmacao esta correta, so corrigindo que as folhas sao no maximo em 4 (quatro), pois folhas sao somento os nos terminais.
  • I. altura 3, formula 2**n -> 2**3 = 8. A questão não perguntou o número de nós, que seria (2**3+1)-1=15 nós, mas sim o número de folhas. II. Questão correta, segundo o algoritmo de transformação de genérica para binária: i) Ligar os nós irmãos; ii) Desligar o pai do filhos, exceto do primeiro.Simulando: R(f1)(f2)(f3)(f4) -> R(f1(f2(f3(f4)))), onde somente f4 é folha.Ref.: http://www.inf.pucrs.br/~marcon/AlgoritmosEProgramacaoII/Slides/21_Arvores.ppt, slide 14.III. Errada, pois fb(n)=|altura(dir)-altura(esq)|<=1;II. Se o número de nós contempla o número de folhas (contém) e a árvore tem mais nós que folhas o número náo pode ser igual. Se houver fórmula para isto favor comentar.
  • Discordo da afirmativa I ser verdadeira, pois uma árvore de altura 3, os nós folhas não seriam os que estão no nível 3 ? Se eles possuíssem nós folhas a mesma árvore não passaria a ter altura 4 ? Esquisita esta questão.
  • Está tudo de acordo com o que nosso amigo "Alexandre Paiva" falou.

    E "Victor", não são 4 nós folhas, altura 3 significa que a árvore possui 4 níveis pois a contagem é feita de 0 a 3. A fórmula correta é:
    Número máximo de nós para uma árvore com altura h: 2h+1-1
    Número máximo de nós folha e uma árvore de altura h: (2h+1-1)-(2h-1) = 2h

    Notem que para encontar esse valor basta subitrair do máximo de nós, o número máximo de nós se a árvore tivesse um nível a menos:

        Altura 2             Altura 1            Nós Folha
            d                       d
       b         f       -     b         f    =   
    a     c e    g                                 a     c e     g
  • I - CORRETA
    Segundo Tanenbaum:
    • "A altura de uma árvore binária é o nível máximo de suas folhas (ocasionalmente conhecida como profundidade da árvore)",
    • "A profundidade de uma  árvore binária significa o nível  máximo  de  qualquer  folha  na  árvore"
    • "A raíz da árvore tem nível 0"
     
    De acordo com as definições de Tanenbaum o nó 8 da árvore acima seria o nível 3, como este é o nível máximo esta seria então a altura da árvore. E como podemos observar a árvore acima tem 8 folhas (nós sem filhos).

    II CORRETA -

    Conversão de Árvore Genérica em Árvore Binária consiste nos seguintes passos:
    1º passo: A raiz da árvore genérica será também a raiz da árvore binária;
    2º passo: Manter a ligação de cada nodo com seu filho mais à esquerda, se o nodo possuir apenas um nodo este é o filho a esquerda (esta ligação mostrará o filho a esquerda na árvore binária);
    3º passo: Formar uma nova ligação de cada nodo com seu irmão à direita (esta ligação mostrará o filho a direita na árvore binária);
    4º passo: As ligações restantes são desconsideradas.

    Àrvore Genérica     -> Binária
          o                            o
    o  o  o  o                        o
                                          o
                                           o
                                            o -> Única folha                    

    III - ERRADA - A altura não precisar ser igual, pode ter diferença de um nível
    De acordo com Tanembaum:
    • Uma árvore  binária  balanceada (chamada  ocasionalmente  árvore  AVL  é  uma  árvore  binária  na  qual  as alturas  das  duas  subárvores  de  todo  nó  nunca  diferem  em  mais  de  1).
    IV - ERRADA - A árvore acima está balanceada e tem um total de 15 nós (nós internos + nós externos ou folhas), os nós externos são 8, ou seja, é menor do que o total de nós.
    LETRA A

ID
10462
Banca
ESAF
Órgão
CGU
Ano
2006
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Analise as seguintes afirmações relacionadas a conceitos básicos de estruturas de dados.

I. Em uma árvore genérica, não binária, cada nó pode ter qualquer quantidade de nós filhos.

II. Em uma árvore binária de pesquisa, a busca é feita de tal forma que se o dado procurado está na raiz a pesquisa será encerrada. Caso contrário, a busca continua e deve ser feita em apenas uma das duas sub-árvores.

III. Uma árvore binária é considerada balanceada quando, para cada nó, a altura das duas sub-árvores diferem, no máximo, da somatória da quantidade de nós existentes nos níveis pares, dividido pela quantidade de níveis considerados.

IV. Um circuito em um grafo é um caminho único que tem origem no primeiro nó e se encerra no último nó.

Indique a opção que contenha todas as afirmações verdadeiras.

Alternativas
Comentários
  • Discordo da questao II, pois o atravessamento em arvores binarias pode ser feito de quatro maneiras:
    -Em ordem (Esquerda, Raiz, Direita - E,R,D)
    -pre-ordem(Raiz, Esquerda, Direita - R,E,D)
    -pos-ordem(Esquerda, Direita, Raiz - E,D,R)
    -em nivel (de acordo com os niveis da esquerda para a direita)
  • ABP = Árvore Binária de Pesquisa

    PesquisaABP(Item P, Arvore T) {

    Se T.Item = P retorne T

    Se T.Item > P PesquisaABP(P, T.Esquerda)

    Senão PesquisaABP(P, T.Direita)
    }
  • Acho que o ítem II deixa claro a opção por iniciar a busca pela raiz. Se o algoritmo já sabe o valor da raiz, ele sabe em qual das duas árvores filhas continuar a busca. Qual o sentido de procurar nas duas? Acho que a questão está correta sim.
  • O Item II fala da árvore binária de pesquisa... os nós estão ordenados, não faz sentido buscar nas duas sub-árvores. Imagina que o nó raiz é 8 e o dado que se deseja encontrar é 4. A subárvore esquerda possui os números menores que 8. A subárvore direita os dados maiores que 8. Pra que irei procurar o número 4 no lado direito? Por isso que o Item II está correto.
  • II. Em uma árvore binária de pesquisa, a busca é feita de tal forma que se o dado procurado está na raiz a pesquisa será encerrada. Caso contrário, a busca continua e deve ser feita em apenas uma das duas sub-árvores.

    Arvore binária de pesquisa ou busca construída de tal forma que, para cada nó:

    1) nós com chaves menores estão na sub-árvore esquerda

    2) nós com chaves maiores (ou iguais) estão na sub-árvore direita

    3) Inserção dos nós da árvore deve satisfazer a essa propriedade

ID
16852
Banca
CESPE / CEBRASPE
Órgão
TRE-AL
Ano
2004
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A atividade de programação requer conhecimento técnico de
diversas formas de algoritmos e estruturas de controle e de dados.
Acerca dos elementos técnicos da atividade de programação,
julgue os itens a seguir.

Em uma fila circular, o último elemento da fila é ligado de
volta ao primeiro, de forma que a fila possa ser percorrida de
maneira circular.

Alternativas
Comentários
  • Creio que o termo "percorrida" não seja apropriado para filas, tendo em vista que não são permitidas operações além das especificadas para a estrutura: Inserção no fim e Remoção no Início. Qualquer operação que percorra a fila desrespeira estas restrições.

    Entretando a CESPE não alterou o gabarito.
  • Gabarito Certo

    Para eliminar o relativo desperdicio de tempo da fila sequencial, ocasionado pelos deslocamentos dos elementos da filas às primeiras posições, utilizamos as filas circulares. Neste tipo não há preocupação para quando o ultimo elemento da fila atinge a posição máxima do vetor, pois o algoritmo implementado adquire o conceito de “circularidade”, onde a última posição é adjacente à primeira. Dessa forma,  são os ponteiros, e não os elementos da fila que se movem em direção ao início do array.

    Para enfileirar um item basta avançar o apontador Fim uma posição (no exemplo usamos o sentido anti-horário); para desenfileirar um elemento basta retroceder o apontador Início uma posição (sentido horário).

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • RESOLUÇÃO:

    Com a iniciativa para eliminar o relativo desperdício de tempo da fila sequencial, ocasionado pelos deslocamentos dos elementos da filas às primeiras posições, utilizamos as filas circulares.

    Resposta: Certo


ID
16855
Banca
CESPE / CEBRASPE
Órgão
TRE-AL
Ano
2004
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A atividade de programação requer conhecimento técnico de
diversas formas de algoritmos e estruturas de controle e de dados.
Acerca dos elementos técnicos da atividade de programação,
julgue os itens a seguir.

Quando o número de acessos randômicos a uma área de
armazenamento é muito maior que o número de inserções e
remoções de elementos armazenados, a organização dessa
área de armazenamento por meio de uma lista encadeada
resulta em desempenho melhor que o apresentado por
organização feita mediante uma estrutura de array.

Alternativas
Comentários
  • Para acessos randômicos, array é mais viável, pois não há necessidade de percorrer a lista para chegar ao elemento desejado, como acontece no caso de listas encadeadas
  • Com array, faz-se o acesso direto pelo índice...mais rápido para acesso randômico.

  • Unica e exclusivamente devido ter poucas  inserções eremoções de elementos .
  • Acessar array pelo índice sempre será mais rápido que acessar uma lista encadeada.

  • ERRADO.

     

    Arrays são mais eficientes p o cenário descrito na questão.

     

    Listas encadeadas seriam mais eficiente se tivesse maiores indices de inclusões/remoções em sua estrutura. E só reforçando o que os colegas já disseram, na lista encadeada o acesso NÃO É DIRETO, isso prejudica o desempenho.


ID
17134
Banca
CESPE / CEBRASPE
Órgão
TSE
Ano
2007
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca da representação e do armazenamento de informações, assinale a opção correta.

Alternativas
Comentários
  • Letra a: Correta - http://pt.wikipedia.org/wiki/Hash.
    Como a seqüencia do hash é limitada, muitas vezes não passando de 512 bits, existem colisões (seqüências iguais para dados diferentes). Quanto maior for a dificuldade de se criar colisões intencionais, melhor é o algoritmo.

    Letra b: Errada - Na verdade o algoritmo First-Fit é utilizado para alocação dinâmica de processos na memória:

    Fragmentação
    Fragmentação acaba com a performance: depois de algum tempo uma grande parte da memória fica inutilizada.

    Memória fica cheia de ``buracos''
    Estratégias para ``atacar'' o problema:

    First-fit: Escolha o primeiro buraco onde o novo processo caiba.

    Letra c: errada

  • b - errada. Não basta unir as áreas livres. É preciso unir as áreas preenchidas seguindo a lógica da qual fazem parte em um arquivo, desfragmentando-o.
  • Letra C - Errada pois o arquivo precisa estar ordenado para se realizar uma busca binária. Quanto ao custo de inserção não sei afirmar.

    Letra D - Se existe um índice, pra que ordenar um arquivo, não é mesmo?
  • A alternativa B) está incorreta porque o que ela afirma é válido apenas para combater a fragmentação externa.


ID
41674
Banca
FCC
Órgão
TRE-PI
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Grafo é um objeto formado por

Alternativas
Comentários
  • Tipicamente, um grafo é representado como um conjunto de pontos (vértices) ligados por retas (as arestas). http://pt.wikipedia.org/wiki/Grafo

ID
56662
Banca
CESPE / CEBRASPE
Órgão
ANAC
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue os itens que se seguem, com relação a conceitos de
construção de algoritmos.

Um array é um agregado, possivelmente heterogêneo, de elementos de dados. Nele, um elemento individual é identificado por sua posição em relação ao primeiro.

Alternativas
Comentários
  • Em um array os elementos são identificados diretamente através de um índice.Em uma lista encadeada é que identificamos os elementos a partir do primeiro elemento (cabeça da lista)
  • o termo possivelmente heterogênio é que invalida a questão. Por definição o array, na programação estruturada, é homogênio. Ou seja, todos elementos tem o MESMO TIPO. Você não pode colocar uma string num array de inteiro. O resto esta certo, pois se a posição do elemento do array é a décima seu indeci é [10], isso é uma identificação em relação ao primeiro elemento do array.
  • Em programação de computadores, um array, também conhecido como vector (para arrays uni-dimensionais) ou matriz (para arrays bi-dimensionais), é uma das mais simples estruturas de dados. Os arrays mantêm uma série de elementos de dados, geralmente do mesmo tamanho e tipo de dados. Elementos individuais são acessados por sua posição no array. A posição é dada por um índice, também chamado de subscrição. O índice geralmente utiliza uma seqüência de números inteiros, (ao contrário de um array associativo) mas o índex pode ter qualquer valor ordinal. Alguns arrays são multi-dimensionais, significando que eles são indexados por um número fixo de números inteiros, por exemplo, por um seqüência (ou sucessão) finita de quatro números inteiros. Geralmente, arrays uni- e bi-dimensionais são os mais comuns.

    Os arrays podem ser considerados como as estruturas de dados mais simples. Têm a vantagem de que os seus elementos são acessíveis de forma rápida mas têm uma notável limitação: são de tamanho fixo, mas podem ser incrementados ou diminuídos com determinados algoritmos, geralmente envolvendo a cópia de elementos de um array para outro e reiniciar o original com a nova dimensão. Os vetores podem ser implementados desta forma.

    Estas estruturas de dados são ajeitadas nas situações em que o acesso aos dados seja realizado de forma aleatória e imprevisível. Porém, se os elementos podem estar ordenados e vai-se empregar um acesso sequencial, seria mais recomendada uma lista.

     
  • Nossa, para mim o erro está tão somente em dizer que array é um agregado heterogêneo de elementos de dados.
  • - Nos arrays todos os elementos que compoem o vetor ou matriz são de um mesmo tipo.

    - Arrays são HOMOGÊNEOS.


ID
56671
Banca
CESPE / CEBRASPE
Órgão
ANAC
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue os itens subsequentes com base em conceitos relacionados
a estruturas de dados.

Em uma implementação encadeada da estrutura de dados pilha, as suas operações básicas de empilhar e desempilhar elementos podem ter tempo de execução constante, independentemente da quantidade de elementos que estejam armazenados na estrutura no momento da sua execução.

Alternativas
Comentários
  • Desde que você tenha um ponteiro apontado para Fim_Pilha, a inserçao e remoção é simples e de tempo constante.
  • se vc tiver nenhum elemento na pilha, vc pode continuar desempilhando? ou se sua pilha tiver cheia (mesmo uma pilha com locação dinamica a memoria do computador não é infinita), como ele pode ser executar a operação empilhar numa pilha cheia?? não entendi a resposta para essa questão? alguem poderia explicar melhor???
  • Bom dia,
    o enunciado considera as condicoes normais para empilhar e desempilhar, mas mesmo que a pilha esteja vazia, o tempo ainda assim será constante, pois basta acessar o ponteiro para o topo da pilha, onde sao realizadas todas as operacoes. Mesmo com a pilha cheia, será o mesmo o tipo de acesso, logo o tempo constante vale para qualquer situacao.
    Obrigado.

ID
56674
Banca
CESPE / CEBRASPE
Órgão
ANAC
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue os itens subsequentes com base em conceitos relacionados
a estruturas de dados.

Na situação em que o número de acessos randômicos predomina sobre as inclusões e exclusões de elementos, a implementação de uma estrutura de dados lista utilizando-se array é mais eficiente que uma implementação encadeada.

Alternativas
Comentários
  • Corretíssimo! Em um array você vai direto ao ponto usando os índices. Isso é o que a questão pede com acessos randômicos. A lista encadeada é boa para incluir e excluir elementos pois ela tem tamanho dinâmico, otimizando o uso do espaço de memória. Mas a busca em uma lista encadeada requer acesso à cabeça da lista e sequencial acesso aos demais itens encadeados até se chegar ao item de busca. Muito ineficiente, concordam?

ID
70258
Banca
FCC
Órgão
TRT - 3ª Região (MG)
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Uma boa função de transformação de chaves tem como requisito essencial a distribuição das chaves tão unifor- memente quanto possível dentro do intervalo dos valores dos índices. Exceto esta exigência, a distribuição não é vinculada a nenhum padrão particular, sendo desejável, inclusive, que pareça totalmente aleatória. Tal propriedade deu a este método uma conotação não-científica (o significado é pulverizar o argumento e espalhá-lo desordenadamente) com o nome de

Alternativas
Comentários
  • Hashing: 
    dica: hash=cortar, separar, dividir,DISTRIBUIR
    • Idéia geral: Se eu possuo um universo de dados classificáveis por chave, posso:
      • Criar um critério simples para dividir este universo em subconjuntos com base em alguma qualidade do domínio das chaves.
      • Saber em qual subconjunto procurar e colocar uma chave.
      • Gerenciar estes subconjuntos bem menores por algum método simples.
    • Para isso eu preciso:
      • Saber quantos subconjuntos eu quero e criar uma regra de cálculo que me diga, dada uma chave, em qual subconjunto devo procurar pelos dados com esta chave ou colocar este dado, caso seja um novo elemento.

      • Isto é chamado de função de hashing.
      • Possuir um índice que me permita encontrar o início do subconjunto certo, depois de calcular o hashing. Isto é a tabela de hashing.


ID
78430
Banca
FCC
Órgão
TRT - 18ª Região (GO)
Ano
2008
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Na execução de um programa, uma estrutura pode ser usada na chamada de procedimentos para armazenar o endereço de retorno (e os parâmetros reais). À medida que procedimentos chamam outros procedimentos, mais e mais endereços de retorno devem ser montados em determinada ordem para, posteriormente, serem recuperados corretamente à medida que os procedimentos chegam ao seu fim. Esta estrutura é adequadamente representada por

Alternativas
Comentários
  • UM DOS CONCEITOS CLÁSSICOS DE ´PILHA!
  • Essa descrição é de recursividade. Recursividade geralmente utiliza a pilha na sua implementação.

    Um pouco de recursividade tratrado no Wikipedia:

    Um método comum de simplificação consiste em dividir um problema em subproblemas do mesmo tipo. Como técnica de programação, isto se denomina divisão e conquista, e constitui a chave para o desenvolvimento de muitos algoritmos importantes, bem como um elemento fundamental do paradigma de programação dinâmica.

    Praticamente todas as linguagens de programação usadas hoje em dia permitem a especificação direta de funções e procedimentos recursivos. Quando uma função é invocada, o computador (na maioria das linguagens sobre a maior parte das arquiteturas baseadas em pilhas) ou a implementação da linguagem registra as várias instâncias de uma função (em muitas arquiteturas, usa-se uma pilha de chamada, embora outros métodos possam ser usados). Reciprocamente, toda função recursiva pode ser transformada em uma função iterativa usando uma pilha.

    Toda função que puder ser produzida por um computador pode ser escrita como função recursiva sem o uso de iteração; reciprocamente, qualquer função recursiva pode ser descrita através de iterações sucessivas.

    Um exemplo simples poderia ser o seguinte: se uma palavra desconhecida é vista em um livro, o leitor pode tomar nota do número da página e colocar em uma pilha (que até então está vazia). O leitor pode consultar esta nova palavra e, enquanto lê o texto, pode achar mais palavras desconhecidas e acrescentar no topo da pilha. O número da página em que estas palavras ocorrem também são colocados no topo da pilha. Em algum momento do texto, o leitor vai achar uma frase ou um parágrafo onde está a última palavra anotada e pelo contexto da frase vai descobrir o seu significado. Então o leitor volta para a página anterior e continua lendo dali. Paulatinamente, remove-se seqüencialmente cada anotação que está no topo da pilha. Finalmente, o leitor volta para a sua leitura já sabendo o significado da(s) palavra(s) desconhecida(s). Isto é uma forma de recursão.

  • Sinceramente dá para entender que a insersão é sempre no topo, mas a retirada a questão não deixa tão clara.

  • A questão fala em uma estrutura que pode ser usada para armazenar endereço de retorno (conceito de pilha).

     

    Em ciência da computação, uma pilha de chamada (ou pilha de execução) é uma pilha que armazena informações sobre as sub-rotinas ativas num programa de computador. Seu principal uso é registrar o ponto em que cada sub-rotina ativa deve retornar o controle de execução quando termina de executar. Sendo organizada como uma pilha, quem invoca a sub-rotina empilha o endereço de retorno.


ID
81562
Banca
FCC
Órgão
TRE-AM
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

As coleções de dados podem ser classificadas em estruturas lineares e estruturas não lineares. Nesse contexto, é correto afirmar que

Alternativas
Comentários
  • A fila é uma estrutura linear. NA fila de prioridade cada elemento tem associado a ele uma prioridade absoluta ou relativa. Novos elementos passam na frente os elementos com prioridade menor do que ele. A pilha é um estrutura linear e tem uma ordenação LIFO (last in, first out),
  • a)Falsa. Fila é linear.b)Falsa. Array é estrutura estática (no contexto do item)c)Falsa. Pilha é linear.d) Ok.e) Falsa. Array é estrutura estática (no contexto do item).Resumindo:Lineares:Tabela Hash (array de listas ligadas)Array é linear.Lista é linearNão Linear:ArvoreConjuntoGrafo
  • a - ERRADO. A fila de prioridade ainda é uma fila e portanto Linear. Além disso não se pode afirmar que é FIFO pois as filas de prioridades tem 3 operações que quebram o FIFO. InsertWithPriority que adiciona elemento com prioridade, GetNext que recupera o elemento com maior prioridade e o PeekAtNext que faz um browse na fila em busca do elemento de maior prioridade sem removê-lo.b - ERRADO. Não necessariamente uma lista encadeada precisa ser estática.c - ERRADO. Pilha é linear e é uma estrutura LIFO.d - CORRETO. e - ERRADO. Array dinêmico é linear. E alocado em tempo de execução.
  • Hash com chave inteira? Aprendi que a chave é o dado no qual é calculado o hash e se for igual a qualquer estrutura presente na tabela, pode-se dizer que aquela chave é correspondente ao texto armazenado. Não entendi porque fala de inteiro. Por exemplo, as senhas no banco de dados passa por esse processo de comparação de hash e não necessariamente precisa ser inte.


ID
105544
Banca
FCC
Órgão
DPE-SP
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Em relação às estruturas de dados, considere:

I. 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.

II. 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.

III. 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.

IV. Lista, pilha, fila e array são casos típicos de estruturas lineares, enquanto árvore, grafo e heap são casos típicos de estruturas não lineares.

É correto o que se afirma em:

Alternativas
Comentários
  • Questão boa pra estudar sobre os nomes que são utilizados, conceitos e níveis de superficialidade/aprofudamento...

  • Quanto a estrutura heap: Em ciência da computação, um heap binário é uma estrutura de dados organizada como árvore binária balanceada, seguindo algumas regras. ( https://pt.wikipedia.org/wiki/Heap )

     

    Gabarito: d)


ID
106186
Banca
FCC
Órgão
PGE-RJ
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Uma estrutura de dados array pode ser do tipo

Alternativas
Comentários
  • b- 

    Consoante Edelweiss(2010), há 2 tipos de dados: dados basicos (primitivos), os quais sao indivisiveis e dados definidos por usuarios, os quais tambem sao dados estruturados, os quais podem ate conter dados basicos e outros estruturados. Exemplos de dados estruturados sao structs, arrays, matrices etc. Um array é caracterizado por ter dimensões (1d -> vetor, 2d ou 3d matriz), possuir index único, tipo (int etc) e conteúdo individual


ID
106189
Banca
FCC
Órgão
PGE-RJ
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

NÃO está associada a uma estrutura de dados especial, que associa chave de pesquisa a valor, a tabela

Alternativas
Comentários
  • Em ciência da computação, uma tabela de dispersão (também conhecida por tabela de espalhamento ou tabela hash, do inglês hash) é uma estrutura de dados especial, que associa chaves de pesquisa a valores. Seu objetivo é, a partir de uma chave simples, fazer uma busca rápida e obter o valor desejado. É algumas vezes traduzida como tabela de escrutínio.

    Fonte Wikipédia - Tabela de dispersão - http://pt.wikipedia.org/wiki/Tabela_de_hashing

  • 1 - a tabela relacional não tem contém chave e um valor não?

    2- alguém saberia definir o que é tabela de escrutínio?

    Questão um pouco confusa
  • Tabela hash pode ser chamada de tabela de espalhamento, dispersão ou escrutínio. Por eliminação, haja vista que todas as outras se tratam de Hash, letra D.
  • "Uma função que transforma uma chave num índice de tabela é chamada função de espalhamento" (considerando todos os outros nomes equivalentes já citados pelos colegas). "Se h é uma função de espalhamento e key é uma chave, h(key) é chamada espalhamento da chave e representa o índice no qual um registro com a chave key deve ser colocado" (TENENBAUM, LANGSAM e AUGENSTEIN, 1995. Estruturas de Dados Usando C, p. 596).

  • Caro salvio, em relação ao seu primeiro questionamento ("1 - a tabela relacional não tem contém chave e um valor não?"), creio que o examinador quis confundir os candidatos inserindo o termo "tabela relacional" da unidade curricular Bancos de Dados. Certamente, tais construções relacionais possuem suas chaves, mas estas não se aplicam a unidade curricular Estrutura de Dados, pois são assuntos bastante diferentes.
    Grande abraço.

    MRB


ID
106285
Banca
FCC
Órgão
TRE-AM
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O NTFS do Windows XP é organizado como uma hierarquia de diretórios e cada diretório utiliza uma estrutura de dados denominada árvore

Alternativas
Comentários
  • Em ciência da computação, uma Árvore B+ é um tipo de árvore. Representa a ordenação de dados de uma maneira que permita uma inserção e remoção eficiente de elementos. É um índice dinâmico de multi-níveis com ligações máximas e mínimas no número de chaves em cada nodo(Em estrutura de dados, define-se nodo como terminal de uma árvore (estrutura de dados) de um determinado critério de busca em um determinado diretório). Os sistemas de ficheiros NTFS para o Microsoft Windows XP, usa este tipo de árvore.Fonte: Wikipédia

ID
110470
Banca
FCC
Órgão
TRF - 4ª REGIÃO
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A estrutura de dados composta por nós que apontam para o próximo elemento da lista, com exceção do último, que não aponta para ninguém, é denominada

Alternativas
Comentários
  • lembrando que FILAS e PILHAS são tipos de listas, logo, a estrutura de dados de ambas é a LISTA.

     

  •  A questão entrega o resultado ...

  • Como assim lucas?uma pilha também é uma lista, a questão não entrega o resultado por falar "o próximo elemento da lista".

    []´s
  • Não entendi porquê a resposta não poderia ser fila ou pilha. Não entendo muito do assunto, mas pelo que estudei, em todos os 3 tipos de estrutura cada nó aponta para o próximo elemento. A diferença é que na fila só entra por um lado e sai pelo lado oposto, na pilha só entra e sai pelo mesmo lado e na lista pode-se inserir ou remover elementos de qualquer posição. A situação em que "o último não aponta pra ninguém" só restringiria a lista circular, mas esta nem foi mencionada.


    Alguém pode explicar?


    A única explicação que vejo é o que o Lucas falou, que a questão deixa explícito que a estrutura de dados que está sendo mencionada é a lista. Embora as pilhas sejam também conhecidas como listas LIFO e as filas como listas FIFO.

  • Tayse CA, você tem razão. Lucas Simão, a questão não entrega resultado nenhum. Se o gab fosse a ou b? Então não entrega resultado menhum. Acertei porque fui na mais correta. Questão mal feita.

  • Substantivo???


ID
113593
Banca
FCC
Órgão
DPE-SP
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Uma estrutura de dados que possui três campos: dois ponteiros e campo de informação denomina-se

Alternativas
Comentários
  • Lista duplamente encadeada


    Uma lista duplamente encadeada é uma sucessão de nós onde cada nó aponta para o próximo nó da lista e para seu predecessor.
    Assim, além do campo relativo ao dado, cada nó possui dois ponteiros, que chamaremos de prox e ant. O objetivo do duplo encadeamento é tornar mais simples e mais eficiente a execução dos algoritmos.

  • Lista duplamente encadeada é uma lista encadeada nos dois sentidos. Cada nó, então tem dois links, um
    para a frente (prox) e outro para trás (ante).

  • a-

    Lista encadeada dupla tem 3 espaços: ponteiro para elemento anterior, outro para posterior e conteúdo (char, int, float ectc). Lista encadeada simples tem 2: ponteiro para frente e dado


ID
114184
Banca
CESPE / CEBRASPE
Órgão
TRE-MT
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

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.

Alternativas
Comentários
  • a) O tipo nó é inadequado para implementar estruturas de dados do tipo pilha.ERRADO. O Tipo Nó pode ser usado sim para implementar uma pilha. Lembrando que uma pilha pode ser implementada como um array ou como uma lista encadeada.b) As listas, pilhas, filas e árvores são estruturas de dados que têm como principal característica a sequencialidade dos seus elementos.ERRADO. As árvores claramente não são sequenciais.c) Uma lista duplamente encadeada é uma lista em que o seu último elemento referencia o primeiro.ERRADO. Isso é uma lista circular. A duplamente encadeada é uma lista que possui nós que referenciam/apontam para o nó anterior e o próximo.d) O algoritmo para inclusão de elementos em uma pilha é usado sem nenhuma alteração para incluir elementos em uma lista.CORRETO. A pilha pode ser implementada como uma lista. Logo o algorítmo de push é o mesmo.e) O uso de recursividade é totalmente inadequado na implementação de operações para manipular elementos de uma estrutura de dados do tipo árvore.ERRADO. Uma das formas de implementar tais algorítmos é por recursão. Apesar de consumir mais recursos do que a forma não recursiva, isso não a qualifica como inadequada.
  • descordo do gabarito, pois no caso de listas ordenadas não poderia ser usado o algorítmo de pilha para inclusão de elementos.
  • Estou na duvida entre as letras A e D.


    a) O tipo nó é inadequado para implementar estruturas de dados do tipo pilha.
    Possível. Mas será que é adequado?

    1. Imaginando uma pilha que utiliza a última posição de uma lista para armazenar o "topo".
    Nesse caso teríamos que correr toda a lista para adiocionar e remover o elemento. Em uma lista muito longa não parece muito adequado.
    Inadequado.

    2. Usando a primeira posição da lista para implementar o "topo" da pilha.
    A implementação fica direta e rápida.
    Adequada.
    Por causa disso a letra A é falsa.



    d) O algoritmo para inclusão de elementos em uma pilha é usado sem nenhuma alteração para incluir elementos em uma lista.
    Essa está estranha, não consegui explicar ainda.
    A lista permite a inserção de objetos em qualquer posição e não apenas nos extremos (pilha).
    Como poderíamos usar o algorítmo de inclusão da pilha para incluir um objeto em uma posição no meio de uma fila????

    Alguêm tem uma justificativa melhor para a letra D?





  • A alternativa menos errada é a letra D.

  • Imagino que a D está CORRETA, por conta do algotitmo FIFO(First in First out) usado para o fluxo da pilha e da lista.


ID
118807
Banca
FCC
Órgão
TRT - 20ª REGIÃO (SE)
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Em relação às estruturas de dados, é correto afirmar:

Alternativas
Comentários
  • Resposta Correta: B

    Lista duplamente ligada
    (ou lista duplamente encadeada) é uma extensão da lista simplesmente ligada (ou lista simplesmente encadeada).

    Numa lista cada elemento, ou nó, é composto normalmente por uma variável que guarda a informação(Objeto, inteiro, cadeia de caracteres, etc) e dois ponteiros (referências a endereços de memória) que permitem a ligação entre os vários nós desta lista. Este tipo de lista é conhecido por "Duplamente ligada" ou "Duplamente encadeada" exatamente pelo fato de possuir duas variáveis de controle (ponteiros) ao contrário da lista simplesmente ligada que possui somente um, o qual aponta para o próximo elemento da lista.

    A função destas variáveis é guardar o endereço de memória do nó anterior e do nó posterior, identificados normalmente como "prev" ou "previous" e "next". Com estas estruturas podemos realizar diversas tarefas que seriam impossíveis ou muito dispendiosas com uma lista simplesmente encadeada.

    No modelo mais simples deste tipo de lista, ao criar a lista o primeiro nó tem seu ponteiro "previous" apontando sempre para nulo e o último nó com seu "next" apontando para nulo. Este modelo não é muito confiável, já que não há um controle efetivo para saber quem é o primeiro e quem é o ultimo elemento, já que a única maneira de extrar tal informação é verificar quem possui o "prev" ou o "next" nulo. 

  • A) Errado. Pilhas possuem disciplina de acesso (LIFO).
    B) Certo. Tem tudo bem explicadinho no comentário da Rebeca =)
    C) Errado. Em processos concorrentes o processo que foi disparado primeiro é executado primeiro. Lembre-se "Fila de processos". Logo ocorre segundo os principios da estrutura FIFO ou LILO.
    D) Errado. Um grafo com um único vértice e sem arestas e conhecido como grafo trivial ou "o ponto". Figura: Já os dígrafos são grafos direcionados. Figura: .
    E) Errado. Não consiste unicamente na pré ordem, existem outros caminhamentos possíveis: Pós-Ordem, Em-Ordem, Euler, Por níveis...
  • Essa questão eu anularia, a alternativa dia (...) normalmente identificados por previous ou next (...) pra mim é um OU outro, então é a fila SIMPLESMENTE ENCADEADA, a duplamente encadeada seria (...) normalmente identificados por previous E next (...)

  • Porque a letra A está errada?


ID
121144
Banca
FCC
Órgão
AL-SP
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

No âmbito das máquinas de estados, um relacionamento entre dois estados, indicando que um objeto em um determinado estado realizará certas ações e entrará em outro estado, dependendo da ocorrência de algum evento e da satisfação de alguma condição, é chamado de

Alternativas
Comentários
  • Diagramas de estado possuem um ponto de início e vários pontos de finalização. Um ponto deinício (estado inicial) é mostrado como um círculo todo preenchido, e um ponto de finalização(estado final) é mostrado como um círculo em volta de um outro círculo menor preenchido. Umestado é mostrado como um retângulo com cantos arredondados. Entre os estados estão astransições, mostrados como uma linha com uma seta no final de um dos estados. A transiçãopode ser nomeada com o seu evento causador. Quando o evento acontece, a transição de umestado para outro é executada ou disparada.

ID
126472
Banca
ESAF
Órgão
Prefeitura de Natal - RN
Ano
2008
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Analise a descrição a seguir:

Na análise de um problema de estrutura de dados, utilizou-se uma árvore binária para representar uma árvore genérica (não-binária) qualquer. Ao se transformar a árvore genérica na árvore binária, observou-se que esta fi cou distribuída da seguinte forma:

No nível 0 ou raiz - um elemento; no nível 1 - um elemento; no nível 2 - dois elementos; no nível 3 - quatro elementos e, fi nalmente, no nível 4 - oito elementos.

Quanto à sua composição, é correto afi rmar que a árvore genérica possui no seu nível 0 ou raiz um elemento, e no seu nível 1

Alternativas
Comentários
  • No seu nível 0, ou raiz, a árvore tem um nó.No seu nível 1, a árvore tem quatro nós.Para identificar quantos nós a árvore genérica terá, a partir de uma binária, basta saber quantos níveis a árvore binária possui abaixo do nó raiz. No nosso caso temos 4.Logo, a resposta é letra E
  • Daniel, não entendi muito bem sua explicação pois na questão não está perguntando quantos nós existem na árvore e sim a quantidade de elementos no nível 1 e em meu consenso para este caso seria a letra B, dois elementos.

    o
    /
          o      <-- Nível 1
        /   \
     o      o  <--  Dois elementos 
            /  \    /  \
          o    o o   o 
         .
         .
         .
  • também achei esquisita a questão...minha opinião seria a B também.

  • Esta questão é um típico caso de Conversão de Árvore Genérica em Árvore Binária  em que consiste nos seguintes passos:

    1º passo: A raiz da árvore genérica será também a raiz da árvore binária;

    2º passo: Manter a ligação de cada nodo com seu filho mais à esquerda, se o nodo possuir apenas um nodo este é o filho a esquerda (esta ligação mostrará o filho a esquerda na árvore binária);

    3º passo: Formar uma nova ligação de cada nodo com seu irmão à direita (esta ligação mostrará o filho a direita na árvore binária);

    4º passo: As ligações restantes são desconsideradas.

    Como exemplo podemos citar o seguinte exemplo:

               O                      O
             /  |  \        =>        |
          O  O  O                 O
                                           \
                                            O
                                               \
                                                O
     

     

     

  • Pessoal, como disse o amigo acima, este é um problema de conversão de arvore generica em binaria, acredito que vocês estejam fazendo confusão: Repare que o enunciado pede quantos nos tera o nivel 1 da ARVORE GENERICA e nao da arvore binaria OK?!

    Deem uma olhada no slide 15 deste material http://www.slideshare.net/darosajoseluiz/arvores-14349156 mostra como transformar uma arvore generia em binaria de forma super simples.

    Abraços!!!
  • Tiago, obrigada por compartilhar conosco o link que ensina a transformar uma árvore genérica em uma árvore binária.
    No entanto, tive dificuldades em fazer o caminho inverso, isto é, dada a árvore binária da questão, encontrar uma árvore genérica.
    Ainda não consegui compreender como chegar no resultado de 4 elementos no nível 1. Assim como os demais colegas, eu marquei a alternativa B (dois elementos).

  • Pessoal, acho que  entendi, mas em se tratando de composição novamente, se fosse no nível 2 seriam quantos elementos? Seriam 7 ?

    Grato,,


ID
128776
Banca
FCC
Órgão
MPE-SE
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Um algoritmo que pode ser usado para caminhar pela estrutura e retornar informações úteis para a resolução do problema. Uma estrutura de links do tipo "Wikipedia" é um modelo que pode ser representado por esta categoria de algoritmo, ou seja, os vértices são os artigos e "existe uma aresta do artigo X para o artigo Y se e somente se X contém um link para Y". As características elencadas representam um algoritmo

Alternativas
Comentários
  • Alguém poderia por favor me explicar essa questão..não entendi absolutamente nada...nunca vi isso...grata!
  • Eu particularmente "matei" a questão pelo termo "aresta" que se referencia a grafo. =/ Mas... realmente é uma questão muito estranha.

  • O wikipedia é um site que possui links para A, B, C, ETC. Ao se navegar por esse site "pulando" de link em link, é como se você tivesse percorrendo ( explorando ) um grafo, onde o site principal ( wikipedia ) seria a raiz do grafo e os links do wikipedia seriam os nós.

    Espero ter sido claro.
  • e-

    O algoritmo de Grafo é uma área do estudo de graficos que analisa as propriedades de nodes e relações entre si. Atraves de algortimos de grafo é possivel modelar situações-problemas e determinar soluções dentro de uma rede de nodes. 


ID
136264
Banca
ESAF
Órgão
MPOG
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

No contexto de estrutura de dados, uma pilha é

Alternativas
Comentários
  • Um pilha é do tipo LIFO - last in, firts out.

  • Complementando a Fernanda: por ser do tipo LIFO, então a opção C é a correta.
  • Tipos de Listas Lineares

    Os tipos mais comuns de listas lineares são as:

    Pilhas - Uma pilha é uma lista linear do tipo LIFO – (Last In First Out), o último elemento que entrou, é o primeiro a sair. Ela possui apenas uma entrada, chamada de topo, a partir da qual os dados entram e saem dela.

  • C - um tipo de lista linear em que as operações de inserção e remoção são realizadas na extremidade denominada topo.


ID
141265
Banca
ESAF
Órgão
ANA
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A estrutura de dados caracterizada por ser uma árvore ordenada, cujos nodos têm, no máximo, dois filhos é a árvore

Alternativas
Comentários
  •  Caracteristica de árvore binária. Cada nó pode ter 0, 1 ou 2 filhos no máximo!

  • Uma árvore binária é uma estrutura de dados caracterizada por:

    • Ou não tem elemento algum (árvore vazia).
    • Ou tem um elemento distinto, denominado raiz, com dois ponteiros para duas estruturas diferentes, denominadas sub-árvore esquerda e sub-árvore direita.

    Perceba que a definição é recursiva e, devido a isso, muitas operações sobre árvores binárias utilizam recursão. É o tipo de árvore mais utilizado na computação. A principal utilização de árvores binárias são as árvores de busca binária.


ID
142012
Banca
CESPE / CEBRASPE
Órgão
TRE-MT
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Em sistema computacional, a forma de armazenar os dados tem papel essencial no tempo e na quantidade de memória necessários à execução de um programa. Em relação a diferentes tipos de estruturas dinâmicas de dados, assinale a opção correta.

Alternativas
Comentários
  • Alguem sabe qual é o problema da letra A?
  • Acredito que seja esta parte da frase " especificadas pelo programador". A forma de inserção/remoção é inerrente a estrutura de dados não é o programador que define, caso ele alterasse esta definição não seria mais uma pilha ou fila.
  • a) Pilhas e filas são estruturas de dados em que a inserção e remoção de dados são realizadas em posições previamente especificadas pelo programador.

    b) Listas ligadas, também chamadas listas encadeadas, podem ser organizadas de várias maneiras diferentes: simplesmente encadeadas ou duplamente encadeadas; circulares ou não circulares; ordenadas ou não ordenadas; lineares ou não lineares.

    c) Árvores binárias são estruturas de dados adequadas à representação de hierarquias, e cada nó da árvore tem zero, um ou dois  mais filhos. A relação hierárquica entre seus filhos é definida por sua localização nas subárvores.
  • Comentários para cada item:
    a) Pilhas e filas são estruturas de dados em que a inserção e remoção de dados são realizadas em posições previamente especificadas pelo programador.
    FALSO: a posição para inserir ou remover um elemento em uma lista ou pilha é de acordo com a definição da estrutura: fila se inseri no início e remove no fim; e pilha se inseri e remove no topo.
    b) Listas ligadas, também chamadas listas encadeadas, podem ser organizadas de várias maneiras diferentes: simplesmente encadeadas ou duplamente encadeadas; circulares ou não circulares; ordenadas ou não ordenadas; lineares ou não lineares.
    FALSO: toda lista encadeada é linear.
    c) Árvores binárias são estruturas de dados adequadas à representação de hierarquias, e cada nó da árvore tem zero, um ou mais filhos. A relação hierárquica entre seus filhos é definida por sua localização nas subárvores.
    FALSO: Pegadinha. Os nós em uma árvore binária podem ter 0, 1 ou 2 filhos.
    e) Listas de adjacências e matriz de adjacência possuem a desvantagem comum de não ser possível determinar se uma aresta pertence ou não ao grafo.
    FALSO: através de matriz de adjacência é possível facilmente saber se uma aresta existe (em tempo O(1)). A partir de listas de adjacências é também possível saber, porém é menos eficiente.


ID
142222
Banca
CESGRANRIO
Órgão
BNDES
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Seja S uma pilha inicialmente vazia. Primeiramente, o elemento A é inserido em S. Em seguida, o elemento B, e assim por diante, até a inclusão final do elemento E. Ao término dessas operações, qual elemento estará no topo de S?

Alternativas
Comentários
  • Primeiro que entra é o último que saí. Assim o E que foi o ultimo a entrar será o primeiro a sair

  • Toda inserção e remoção da pilha é realizada no topo da mesma.

    0) Inicialmente a pilha S está vazia

    |     | <---- Topo da pilha
    -----

    1) Insere o elemento A na pilha S

    | A | <---- Topo da pilha
    -----

    2) Insere o elemento B na pilha S

    | B | <---- Topo da pilha
    -----
    | A |
    -----

    3) Insere o elemento C na pilha S

    | C | <---- Topo da pilha
    -----
    | B |
    -----
    | A |
    -----

    4) Insere o elemento D na pilha S

    | D | <---- Topo da pilha
    -----
    | C |
    -----
    | B |
    -----
    | A |
    -----

    5) Insere o elemento E na pilha S

    | E | <---- Topo da pilha
    -----
    | D |
    -----
    | C |
    -----
    | B |
    -----
    | A |
    -----
  • RESOLUÇÃO:

    0) Inicialmente a pilha S está vazia

    |  | <---- Topo da pilha

    -----

    1) Insere o elemento A na pilha S

    | A | <---- Topo da pilha

    -----

    2) Insere o elemento B na pilha S

    | B | <---- Topo da pilha

    -----

    | A |

    -----

    3) Insere o elemento C na pilha S

    | C | <---- Topo da pilha

    -----

    | B |

    -----

    | A |

    -----

    4) Insere o elemento D na pilha S

    | D | <---- Topo da pilha

    -----

    | C |

    -----

    | B |

    -----

    | A |

    -----

    5) Insere o elemento E na pilha S

    E | <---- Topo da pilha

    -----

    | D |

    -----

    | C |

    -----

    | B |

    -----

    | A |

    -----

    Resposta: E


ID
144448
Banca
CESPE / CEBRASPE
Órgão
TRE-MA
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A técnica LIFO (last in first out), utilizada em programação estruturada, é fundamentada no conceito de

Alternativas
Comentários
  • Correto. A pilha é uma estrutura de dados que segue a política LIFO, ou seja, o último elemento que foi "empilhado" (Last In) será o primeiro a ser removido (First Out). Fazendo um paralelo ao mundo real, é assim que acontece (ou deveria acontecer) com a pilha de livros, de pratos, etc.
  • A técnica LIFO é que fundamenta a estrutura de pilha, mas blz...


ID
148321
Banca
FCC
Órgão
TRT - 16ª REGIÃO (MA)
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Pilha é uma estrutura de dados

Alternativas
Comentários
  • Não confundir FIFO com FILO.

    LIFO - Last In First Out (Ultimo a entrar Primeiro a sair)

    FILO - First In Last Out (Primeiro a entrar Ultimo a sair) / FIFO - First In First Out (Primeiro a entrar Primeiro a sair)

     

    http://pt.wikipedia.org/wiki/LIFO

  • Só complementando o que o colega a baixo falou:

    A estrutura de dados pilha é como se fosse uma pilha de pratos, todos empilhados uns encima dos outros. Se você quiser remover um prato, terá que remover o que está no topo da pilha, quer dizer, o último prato que foi posto nessa pilha de pratos. O que nos leva a seguir o termo LIFO(último a entrar, primeiro a sair).

     

    Bons Estudos!

  • Acho que não seria apenas LIFO (last in first out), mas também poderia ser FILO (first in last out).
  • Estrutura de dados Pilha:

    LIFO  significa Last In First Out --> Último a entrar é o primeiro a sair.
    FILO significa First In Last Out --> Primeiro a entrar é o último a sair.


ID
148390
Banca
FCC
Órgão
TRT - 16ª REGIÃO (MA)
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O almoxarife de um órgão pediu ao técnico de informática que elaborasse um sistema de custeio que, para cada saída de material, considerasse o custo do mais recente que houvera dado entrada no almoxarifado. O técnico deve desenvolver um algoritmo para tratar com uma estrutura de dados do tipo

Alternativas
Comentários
  • LIFO. significa último a entrar, primeiro a sair) refere-se a estruturas de dados do tipo pilha. É equivalente a FILO, que significa First In, Last Out O conceito de pilha é amplamente utilizado na informática, como, por exemplo, durante a execução de um programa, para o armazenamento de valores de variável local a um bloco e também para conter o endereço de retorno do trecho de programa que chamou a função ou procedimento atualmente em execução.

    Rutianne :D

ID
148756
Banca
FCC
Órgão
TJ-SE
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Um órgão público adotou dois sistemas de senhas para atender os cidadãos na ordem de chegada.

O sistema I atende os não idosos.
O sistema II atende os idosos.

Nessa situação,

Alternativas
Comentários
  • Quando você entra em uma fila de banco, não importa se é uma fila normal ou de idosos, o primeiro que entrou na fila será o primeiro a ser atendido ( FIFO ).

    abs

ID
148873
Banca
FCC
Órgão
TJ-SE
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Um grafo cujo nó de partida de um caminho coincide com o nó de chegada caracteriza um grafo

Alternativas
Comentários
  • http://www.inf.ufsc.br/grafos/definicoes/definicao.html

  • b)cíclico.

  • b-

    O grafo ciclico tem suas conexoes interligadas, com seus nodes sempre conectando 1 ao outro. Um exemplo disso é a topologia anel de uma rede.


ID
149386
Banca
FCC
Órgão
TJ-SE
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Uma estrutura de dados em lista duplamente encadeada permite na cadeia movimentos para

Alternativas
Comentários
  • Uma estrutura de dados do tipo Lista permite apenas o encadeamento em uma direção. Já a Lista Duplamente Encadeada, como o próprio nome já diz, é possível o movimento nos dois sentindos(frente e trás).

  • Não entendi a diferença do para cima e para baixo ou para frente e para trás. É só uma questão visual, ou eu não posso imaginar uma lista encadeada para cima e para baixo?

  • Lista duplamente encadeada é uma lista encadeada nos dois sentidos. Cada nó, então tem dois links, um
    para a frente (prox) e outro para trás (ante).

  • Examinador autista. Gabarito correto seria letra C. Nem existe isso de frente trás, cima baixo, isso é só uma didática para ajudar a imaginar! Na memória RAM fica tudo espalhado aleatoriamente com referências a endereços. Questão totalmente sme pé e sem cabeça.

  • e-

     

    Lista encadeada é somente 1 sentido. Duplamente, p/ frente/trás.

     

    ex. de lista duplamente encadeada em C:

    https://www.tutorialspoint.com/data_structures_algorithms/linked_list_program_in_c.htm

  • Existe um tipo de lista encadeada que permite o deslocamento em ambas as direções - para frente e para trás - em uma lista encadeada. É uma lista duplamente encadeada.

     

    Fonte:  Estruturas de Dados & Algoritmos em Java - 5ed. Por Michael T. Goodrich, Roberto Tamassia


ID
149917
Banca
CESPE / CEBRASPE
Órgão
ANAC
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O desempenho de um sistema computacional depende de vários
fatores, como volume de dados, capacidade do sistema e
adequação dos algoritmos, das estruturas de dados e dos objetos
que são utilizados para realizar as operações. Acerca desse
assunto, julgue os itens que se seguem.

As operações de inserir e retirar sempre afetam a base de uma pilha.

Alternativas
Comentários
  •  Afetam o topo.

  • Na estrutura de dados do tipo pilha, os elementos são inseridos e retirados do topo, logo a inserção e a remoção de dados afetam o topo.

  • SE não tiver nada na pilha, os primeiros registros vão estar na base/topo, e assim afetaria

  • Afetam o topo!

    Gabarito: E


ID
149920
Banca
CESPE / CEBRASPE
Órgão
ANAC
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O desempenho de um sistema computacional depende de vários
fatores, como volume de dados, capacidade do sistema e
adequação dos algoritmos, das estruturas de dados e dos objetos
que são utilizados para realizar as operações. Acerca desse
assunto, julgue os itens que se seguem.

Em uma lista circular duplamente encadeada, cada nó aponta para dois outros nós da lista, um anterior e um posterior.

Alternativas
Comentários
  • Cada nó, então tem dois links, um para a frente (prox) e outro para trás (ante).     [nó_ante] <--- [nó] ---> [nó_prox]

  • Gabarito Certo

    Lista duplamente encadeada circular: Neste modelo de lista possuimos apenas um sentinela. Esta lista é conhecida como circular pois o sentinela aponta para o primeiro elemento da lista e o último elemento da lista aponta para o sentinela, formando assim um círculo lógico.

     

     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !


ID
149923
Banca
CESPE / CEBRASPE
Órgão
ANAC
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O desempenho de um sistema computacional depende de vários
fatores, como volume de dados, capacidade do sistema e
adequação dos algoritmos, das estruturas de dados e dos objetos
que são utilizados para realizar as operações. Acerca desse
assunto, julgue os itens que se seguem.

Por meio de uma lista de adjacência, é possível representar um grafo acíclico.

Alternativas
Comentários
  • Com uma lista de adjacência, é possível representar qualquer grafo. A lista de adjacência é ua forma de representar em que cada elemento é um nó que possui uma lista para todos os nós que são vizinhos.
  • Em ciência da computação, uma lista de adjacência é uma estrutura de dados para representar grafos.

    Em uma representação de lista de adjacência, podemos manter, para cada vértice do grafo, uma lista de todos os outros vértices com os quais ele tem uma aresta (a "lista de adjacência", deste vértice).
  • REGRA - pro soluto (só responde pela existência do crédito)

    se houver estipulação, pode ser pro solvendo, ou seja, o cedente (quem cede o crédito) responde pela solvência do devedor.


ID
149926
Banca
CESPE / CEBRASPE
Órgão
ANAC
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O desempenho de um sistema computacional depende de vários
fatores, como volume de dados, capacidade do sistema e
adequação dos algoritmos, das estruturas de dados e dos objetos
que são utilizados para realizar as operações. Acerca desse
assunto, julgue os itens que se seguem.

A ordenação de um vetor contendo n elementos, utilizando-se algoritmo de bolha, realiza, no pior caso, mais que n/2 comparações.

Alternativas
Comentários
  •  No pior caso, são feitas 2n2 operações. 

    http://pt.wikipedia.org/wiki/Bubble_sort

  • Algoritmo de bolha (bubble sort) realiza:
    i) melhor caso (já ordenado): (n-1) comparações;
    ii) pior caso (lista invertida): n² comparações;
    Como ele afirma que são mais que n/2 e n² > n/2, questão correta.
  • Está questão realmente está certa? Pois n/2 entendo que é uma fração, e não uma exponenciação 

  • o correto mesmo deveria ser

     

    2017

    No pior caso, quando o vetor está inversamente ordenado, o algoritmo Bubble Sort executa n2 operações para a ordenação de um vetor de n elementos.

    certa

     


ID
149929
Banca
CESPE / CEBRASPE
Órgão
ANAC
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O desempenho de um sistema computacional depende de vários
fatores, como volume de dados, capacidade do sistema e
adequação dos algoritmos, das estruturas de dados e dos objetos
que são utilizados para realizar as operações. Acerca desse
assunto, julgue os itens que se seguem.

A busca binária pode ser realizada em vetor não ordenado. Caso o vetor contenha n elementos, o tempo de execução da busca necessita de 5n comparações.

Alternativas
Comentários
  •  Necessita de log n comparações.

  • A busca binária não pode ser realizada em um vetor desordenado e o tempo de execução é da ordem de log(n) e não 5n.

  • O erro começa no 1º período da assertiva. Nem li o resto:

    "A busca binária pode ser realizada em vetor não ordenado. ...."

    Não! O vetor tem que ser ordenado para se realizar a busca binária.
  • Tem que está  ordenado, pois  isso é um requisito obrigatório para busca ordenada


ID
150010
Banca
CESPE / CEBRASPE
Órgão
TCE-AC
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere um processo de recuperação de informações a partir de uma grande massa de informações previamente armazenadas, sendo a informação dividida em registros que possuem uma chave para ser utilizada na pesquisa, cujo objetivo seja encontrar uma ou mais ocorrências de registros com chaves iguais à chave de pesquisa; o conjunto de registros denomina-se tabela ou arquivo, sendo tabela o conjunto de informações armazenadas na memória interna ou principal e arquivo, o conjunto de informações armazenadas na memória secundária ou externa.

Considerando essas informações, assinale a opção correta a respeito dos métodos de acesso, organização de arquivos e estruturas de dados.

Alternativas
Comentários

  • LETRA C EH A RESPOSTA



    SUBLINHANDO OS ERROS
    • b) Uma pilha é um objeto dinâmico que pode ser considerado uma forma de lista linear em que todos os acessos e todas as inserções e retiradas de elementos ocorrem sempre em um dos extremos da lista; em pilhas, os objetos são inseridos e retirados segundo o princípio FIFO (first in, first out).
     NÃO SE USA O PRINCIPIO FIFO.

    • c) Hashing é um método que, a partir de uma chave de pesquisa, gera o endereço de uma tabela que considera a possibilidade de uma ou mais chaves serem transformadas em um endereço igual. Os algoritmos de hashing podem utilizar listas encadeadas como meio para tratar as colisões. Assim, todas as chaves com o mesmo endereço são encadeadas em uma lista linear.
     CORRETO. AQUI SE ABORDA O CONCEITO DE HASHING JUNTAMENTE COM O SEU PRINCIPAL PROBLEMA QUE EH O PROBLEMA DAS COLISOES, OU SEJA, OS MOMENTOS QUE O INDICE COLOCADO NA FUNCAO HASH LEVA A DIFERENTES ITENS DE DADOS.  EH IMPORTANTE SABER ESSE CONCEITOS. EH MUITO COBRADOS NAS QUESTÕES.
    • d) Um deque (double ended queue) requer inserção e remoção no topo de uma lista e permite a implementação de filas com algum tipo de prioridade. A implementação de um deque, geralmente é realizada com a utilização de uma lista simplesmente encadeada.
    O ERRO DETECTADO ESTÁ SUBLINHADO. OU SEJA, O DEQUE EH UMA ESTRUTURA QUE SE PARECE COM UMA LISTA SIMPLES MAS  ACEITA INSERÇAO NAS DUAS EXTREMIDADES
  • O erro da a)  é dizer: "Se é possível os nodos se deslocarem em ambas as direções na lista, diz se que se trata de uma lista simplesmente encadeada." O correto seria Duplamente Encadeada.

    Deque (Double Ended Queue)!  É também conhecida como Filas Duplamente Encadeadas e permite a eliminação e inserção de itens em ambas as extremidades. Ademais, elas permitem algum tipo de priorização, visto que é possível inserir elementos de ambos os lados. Assim sendo, é comum em sistemas distribuídos!


ID
150289
Banca
FCC
Órgão
TJ-PA
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O produto da ação de algoritmos que fazem o mapeamento de uma sequência de bits de tamanho arbitrário para uma sequência de bits de tamanho fixo menor, com resistência à colisão e cujo processo reverso também não seja realizável, denomina-se

Alternativas
Comentários
  •  http://cantinhodomanel.blogspot.com/2007/08/o-que-hash.html

  • Pesquisa por Cálculo de Endereço (Hashing)
    Tabelas onde é possível fazer pesquisas através do cálculo de endereço
    são conhecidas por Tabelas HASH. Hash, em inglês, significa dispersão,
    espalhamento. Este método de pesquisa é bastante útil quando a busca é
    feita sobre um número muito grande de dados que possuam faixas de
    valores muito variável.
    Tabelas HASH são como a maioria das outras tabelas, à exceção que é
    possível fazer acesso não sequencial a determinados registros da tabela
    através do uso de funções hash (em português: funções de
    espalhamento).

  • Uma aplicação importante desse embaralhamento é verificar a integridade de mensagens. Determinando qualquer mudança feita numa mensagem, ou então arquivo de computador. Por exemplo, pode ser feito comparando o resumo calculado antes, e depois a transmissão, ou qualquer outro evento.

    Por essa razão, a maior parte dos algoritmos de assinatura digital apenas confirma a autenticidade de um hash resumo para ser autenticado. Verificação da autenticidade de um resumo hash é considerada como prova de que a mensagem é verdadeira.


ID
150334
Banca
FCC
Órgão
TJ-PA
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere uma estrutura de dados do tipo vetor. Com respeito a tal estrutura, é correto que seus componentes são, característicamente,

Alternativas
Comentários
  • Traduzindo a resposta
    homogêneos e de acesso aleatório por intermédio de índices.
    significa dizer que o tipo dos dados de um vetor e' sempre igual, ou seja, se crio um vetor de caracteres com 10 posicoes, significa que o tipo de dados dos 10 elementos inseridos sera caracter. Acesso aleatorio, significa que posso acessar qualquer elemento do vetor atraves do indice, ou seja, quero o elemento da posicao 4 entao digo vet[4], nao preciso passar pela posicao 1,2 e 3 para chegar `a posicao 4, posso acessar diretamente a posicao 4 atraves do nome do vetor e do indice da posicao desejada, vet[4] por exemplo
    bons estudos

ID
151831
Banca
FCC
Órgão
TRE-PI
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Sobre estrutura de dados, considere:

I. Pilha é uma estrutura de dados com acesso restrito aos seus elementos, uma vez que eles são colocados e retirados por um único lado e são ordenados pelo princípio LIFO (last in first out). Assim, sempre que um elemento é adicionado ou retirado seu topo é alterado.
II. Pilha é o tipo de estrutura usada, por exemplo, na avaliação de expressões numéricas, na recursividade e pelos compiladores, na passagem de parâmetros para as funções.
III. Registro é uma estrutura básica que permite guardar coleções de dados de diferentes tipos, sendo normalmente utilizado quando um objeto tem diferentes atributos, isto é, contém campos de diferentes tipos.
IV. Lista pode conter um número qualquer de elementos, expandindo-se ou contraindo-se conforme o elementos são inseridos ou retirados. Nesse tipo de estrutura, os acessos tanto podem ser feitos sequencialmente como diretamente.
V. Fila, assim como a pilha , é uma versão especial de lista, e como tal, seus elementos são ordenados pelo princípio LIFO (last in first out).

Está correto o que se afirma APENAS em

Alternativas
Comentários
  • O erro da IV é que lista só pode ser acessado sequencialmente e o erro da V é que Fila segue os princípios ( FIFO e LILO )
  • Complementando o comentário do Fabrício:

    A lista de que trata a questão é uma lista com alocação encadeada, também conhecida como alocação dinâmica, onde a lista se expande e se contrai conforme os elementos são inseridos ou removidos. Os elementos, não precisam estar contíguos na memória. Neste caso, o acesso somente pode ser realizado percorrendo-se a lista até o elemento desejado.

    Existe também a lista com alocação sequencial, também conhecida como alocação estática. Neste caso, geralmente, é realizada uma reserva prévia de memória para cada estrutura, a inserção e remoção de nós não ocorre de fato, pois o tamanho da lista já está previamente definido. Os elementos permanecem contíguos na memória. Neste caso, o acesso pode ser feito diretamente.

    Concluindo: O acesso ao k-ésimo elemento da lista é imediato na alocação sequencial, enquanto na alocação encadeada obriga o percurso na lista até o elemento desejado.

    Ref: Estrutura de dados e seus algoritmos - Jayme Luiz Szwarcfiter e Lilian Markenson, 2a. edição, pág. 20-35.

  • Por eliminação se mata a questão. Só o conceito de pilha é suficiente, já que o erro do conceito de pilha está na acertiva V e a única alternativa que não apresenta o item V é a letra A.


ID
153049
Banca
CESPE / CEBRASPE
Órgão
TJ-DFT
Ano
2008
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue os próximos itens, acerca de características, funções,
algoritmos e componentes de sistemas operacionais.

Um vetor de interrupções contém uma fila de pares de parâmetros, sendo um parâmetro para o número da interrupção e o outro para o processo destinatário da interrupção.

Alternativas
Comentários
  • O vetor de interrupções é uma tabela de endereços de memória que apontam para as rotinas de tratamento de interrupção.
  • Gabarito Errado

    vetor de interrupções é uma tabela de endereços de memória que apontam para as rotinas de tratamento de interrupção. Quando uma interrupção é gerada, o processador salva o seu estado atual e começa a executar o tratamento de interrupção apontado pelo vetor.

    Em muitas arquiteturas, o vetor de interrupção fica localizado no início do espaço de memória, a partir do endereço 0. Nos Pcs, o vetor de interrupções ocupa os primeiros 1024 bytes.

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !


ID
154042
Banca
FCC
Órgão
MPE-RN
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

As entradas de uma matriz de incidência que representa um grafo onde uma das dimensões são vértices e a outra são arestas, são representadas apenas por

Alternativas
Comentários
  • Na representação dos grafos em matrizes podemos fazê-los por:
    1)matrizes INCIDENTES:
    relacionam os vértices as arestas - verifica qual vértice está ligado a qual aresta.
    (0=aresta não incide no vértice, 1=aresta incide no vértice, 2=aresta sai e incide no mesmo vértice)
    2)matrizes ADJACENTES:
    relacionam os vértices aos outros vértices - verifica quais vértices estão  ligados entre si. (0 = vértice não ligado, 1 = vértice ligado)

    http://www.land.ufrj.br/~classes/grafos/slides/aula_4.pdf
  •  d)três valores (0, 1 e 2).

    Os valors de 0,1,2 em matriz incidencia seguem o padrão abaixo para uma matrix Ig [v,e]

    0 - vertice e aresta não-relacionados.

    1 - vertice e aresta relacionados.

    2- aresta é um loop em vertice. O ""loop"" acontece quando o node esta solto na representação, não interagindo com o grafo principal

     


ID
157027
Banca
CESPE / CEBRASPE
Órgão
TRT - 5ª Região (BA)
Ano
2008
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Com relação a qualidade de software, bancos de dados e suas tecnologias, julgue os itens de 37 a 42.

A independência lógica de dados é a habilidade de modificar o esquema físico sem a necessidade de reescrever os programas aplicativos. A independência lógica dos dados é mais difícil de ser alcançada que a independência física, porém os programas são bastante dependentes da estrutura lógica dos dados que eles acessam.

Alternativas
Comentários
  • A independência lógica significa que a estrutura lógica dos dados pode ser alterada sem consequências a nível de todos os programas. Por exemplo: adicionar novos campos a uma tabela, ou criar uma nova tabela.

    A independência física verifica-se quando a organização física dos dados pode ser alterada sem que isso acarrete uma modificação global na estrutura lógica dos dados e nos programas. Por exemplo: adicionar uma nova chave a uma tabela, ou distribuir a base de dados por dois ou mais computadores.

    A independência lógica é a mais difícil de atingir dado que os programas são altamente dependentes de estrutura lógica.

  • A questão inverte os esquemas da independência lógica e física. Observem o conceito:

    Independência Física de Dados: É a habilidade de modificar o esquema físico sem a necessidade de reescrever os programas aplicativos. As modificações no nível físico são ocasionalmente necessárias para melhorar o desempenho;
    Independência Lógica de Dados: É a habilidade de modificar o esquema conceitual sem a necessidade de reescrever os programas aplicativos. As modificações no nível conceitual são necessárias quando a estrutura lógica do banco de dados é alterada (por exemplo, a adição de contas de bolsas de mercado num sistema bancário).

    A independência lógica dos dados é mais difícil de ser alcançada do que a independência física, porém os programas são bastante dependentes da estrutura lógica dos dados que eles acessam. (Essa parte esta certa).

  • O erro está em:

    A independência lógica de dados é a habilidade de modificar o esquema conceitual - e não físico - sem a necessidade de reescrever os programas aplicativos

    Segundo Navathe:

    Independência lógica de dados: é a capacidade de alterar o esquema conceitual sem mudar o esquema externo ou os programas.

    Independência física de dados: é a capacidade de alterar o esquema interno sem mudar o esquema conceitual.
  • A independência lógica dos dados é mais difícil de ser alcançada que a independência física, porém os programas são bastante dependentes da estrutura lógica dos dados que eles acessam.

    Pessoal acho que este trecho acima também está errado, além do erro mencionado pelos colegas. Olhem o que achei no livro do Navathe. O que acham? Estou com dúvidas. Deixem os comentários se puderem me ajudar.

    Segundo Navathe (2011, p.24, 1° paragrafo da página),"Por sua vez, a independência lógica de dados é mais difícil de ser alcançada porque permite alterações estruturais e de restrição sem afetar os programas de aplicação- um requisito muito mais estrito."


    Bibliografia

    Sistemas de Banco de dados  6 edição
    Autor : Navathe





  • Errado.

    De fato, a independência lógica de dados é mais difícil de ser alcançada. Contudo o conceito de independência lógica está errado.

    Segundo Navathe, independência de dados lógica é a capacidade de alterar o esquema conceitual sem mudar o esquema externo ou os programas.

  • Q153004 - A independência lógica de dados é a capacidade de mudar o esquema conceitual sem ter que mudar esquemas externos ou programas de aplicação. A independência física de dados é a capacidade de mudar o esquema interno sem ter que mudar o esquema conceitual.


ID
157480
Banca
CESPE / CEBRASPE
Órgão
TRT - 5ª Região (BA)
Ano
2008
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Com respeito a linguagens de programação e estrutura de dados, julgue os itens a seguir.

Entre alguns tipos de estrutura de dados, podem ser citados os vetores, as pilhas e as filas.

Alternativas
Comentários
  •  Vetor é considerado uma estrutura de dados?

  • Questão certa.

    Respondendo ao comentário anterior, assim como os arrays, os vetores são considerados estruturas de dados simples.

     

    http://pt.wikipedia.org/wiki/Array

  •  Estruturas de dados clássicos:

    1. Vetores;
    2. Lista;
    3. Fila;
    4. Pilha
    5. Árvores

    Logo a questão está certa.

     

  • Sim. Vetor é uma estrutura de dados também. Porém, diferente de pilha, fila, lista, ele já vem definido (buit-in) em praticamente todas as linguagens.
  • Não sabia que vetor era uma estrutura de dados


ID
157492
Banca
CESPE / CEBRASPE
Órgão
TRT - 5ª Região (BA)
Ano
2008
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Com respeito a linguagens de programação e estrutura de dados, julgue os itens a seguir.

A principal característica de uma lista encadeada é o fato de o último elemento da lista apontar para o elemento imediatamente anterior.

Alternativas
Comentários
  • ERRADO: na lista encadeada o último elemento aponta para um elemento NULO.
  •  Errado.

    O último elemento da lista encadeada não aponta para nenhum.

    Já a lista duplamente encadeada o funcionamento é diferente, pois nessa lista cada elemento aponta para o elemento anterior e para o próximo elemento, no caso do ultimo elemento nessa lista ele apontará para o elemento anterior e nulo para o próximo elemento.

  • errado- Se fosse lista duplamente encadeada, aí sim apontaria para o anterior. Na simples, o ultimo aponta NULL. 

  • DICA de prova do CESPE: Sempre que ela falar em lista encadeada está se referindo à simples e se ela fala algo que está fora do escopo da simples pode marcar E!

  • Lista simplesmente encadeada:

    Possui apenas um ponteiro para o seu sucessor

    Omitimos o ponteiro anterior em cada elemento

     

    Como a questão refere-se a essa lista o gab está errado


ID
157855
Banca
FCC
Órgão
METRÔ-SP
Ano
2008
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O objetivo de fazer uma busca rápida a partir de uma chave de pesquisa simples e obter o valor desejado é alcançado pela estrutura de dados especial denominada

Alternativas
Comentários
  • Tabela hashing  também conhecida por tabela de espalhamento, é uma estrutura de dados especial, que associa chaves de pesquisa (hash) a valores. Seu objetivo é, a partir de uma chave simples, fazer uma busca rápida e obter o valor desejado. É algumas vezes traduzida como tabela de escrutínio.


ID
161521
Banca
FCC
Órgão
MPE-RS
Ano
2008
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Respeitando as ordens de inserção e de retirada dos
dados, uma estrutura de

Alternativas
Comentários
  • Questão errada.

    O correto seria
    (E)  pilha é também denominada LIFO ou FILO.
  • PILHA - primiro que entra é o último a sair (first in last out) FILO último que entra é o primeiro a sair (last in first out) LIFOFILA - primeiro que entra é o primeiro que sai (First in first out) FIFO último que entra é o último que sai (last in last out) LILO
  • Estrutura de dados Fila :
    LILO
    significa Last In Last Out --> Último a entrar é o último a sair.
    FIFO significa First In First Out --> Primeiro a entrar é o primeiro a sair.

    Estrutura de dados Pilha:
    LIFO
      significa Last In First Out --> Último a entrar é o primeiro a sair.
    FILO significa First In Last Out --> Primeiro a entrar é o último a sair.

    a) fila é também denominada LIFO FIFO ou LILO.
    b) fila é também denominada FIFO ou FILO LILO.
    c) fila é também denominada FIFO ou LIFO LILO.
    d) pilha é também denominada FIFO LIFO ou FILO.
    e) pilha é também denominada LIFO ou FILO.
  • RESOLUÇÃO:

    A estrutura da Pilha é:

    LIFO significa Last In First Out = Último a entrar é o primeiro a sair.

    FILO significa First In Last Out = Primeiro a entrar é o último a sair.

    Resposta: E


ID
161524
Banca
FCC
Órgão
MPE-RS
Ano
2008
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Uma fila dupla que se trata de uma lista linear na qual os elementos podem ser inseridos ou removidos de qualquer extremo denomina-se

Alternativas
Comentários
  •        As listas lineares podem ser: Pilha, Fila ou Fila Dupla. É dita FILA DUPLA porque os elementos podem ser inseridos ou removidos de qualquer extremidade. É conhecida também por DEQUE (Double Ended Queue). 
  • DEQUE

     É uma estrutura de dados similar a uma fila, no entanto, suporta inserção e remoção em ambas extremidades da estrutura.
     Essa estrutura usa duas variáveis de controle, uma para referenciar o inicio e outra para referenciar o fim da estrutura.

     

    Uma questão CESPE sobre isso, que está CORRETA: 

    Na implementação de um deque sequencial, é necessário ter, em cada extremidade, uma variável de ponteiro externa, por meio da qual as inserções e retiradas sejam efetuadas.


ID
161827
Banca
FCC
Órgão
TRF - 5ª REGIÃO
Ano
2008
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Vetores associativos, caches e sets

Alternativas
Comentários

ID
163681
Banca
CESGRANRIO
Órgão
Petrobras
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Uma lista simplesmente encadeada pode ser transformada em uma lista duplamente encadeada em tempo O(1)

PORQUE

Para transformar uma lista simplesmente encadeada em duplamente encadeada basta fazer uma cópia invertida de cada ponteiro (o destino do novo ponteiro passa a ser a origem do ponteiro original e vice-versa) e existe um número constante e limitado de cópias a fazer.

Analisando as afirmações acima, conclui-se que

Alternativas
Comentários
  • A primeira afirmativa é falsa, pois o correto seria O(n)
    A segunda afirmativa deveria ser correta! Eu sei que minha lista tem tamanha N. Então o número de cópias seria limitado a N-1. Alguém sabe se foi anulado?
  • Se a lista tem tamanho N (um parâmetro de entrada) então não é constante.
  • Concordo que a segunda afirmativa parece correta.

  • Eu acredito que não seja possível transformar uma lista simplesmente encadeada em duplamente encadeada através de um procedimento seria necessário mudar a estrutura de dados então um procedimento em si não conseguiria fazer isso sozinho. Já a segunda afirmativa é um pouco duvidosa, pois não fica bem claro qual é esse ponteiro original. Na minha opinião não se poderia dizer que o ponteiro original é o ponteiro do elemento anterior vizinho que aponto para o próximo.

  • Uma lista encadeada pode ser transformada em uma lista duplamente encadeada. Assim, o tempo de inserção e retirada que um item no início e no final da lista ficam constantes, O(1). Porém, para tranformar cada item simplesmente encadeado em um duplamente encadeado, a lista deve ser percorrida do iníco ao fim, sendo tranformada nessa corrida. Por isso, não é de tempo ou complexidade constante, que é o que significa O(1), mas sim de complexidade variável, O(n).

    Com relação a segunda, não existe um número constante de cópias a se fazer. Limitado sim, 'n'. Se fosse constante, uma lista de 10 elementos levaria o mesmo tempo de uma lista de 20 para ser transformada de simplesmente para duplamente encadeada.

    Espero ter ajudado!
  • Na primeira, preciso percorrer toda a lista realizando as alterações necessárias, logo é O(n) (onde n é o tamanho da lista)

    Na segunda... gente... se preciso percorrer n elementos então não é uma constante limitada e sim uma variável, essa lista pode ter 1 elemento ou 1 milhão ou sejá lá quanto for preciso, logo o procedimento é O(n). Quando se fala em "constante", todo número constande de operações sequenciais terá complexidade O(1) pois sempre será aquele mesmo número de operações, independente do tamanho da lista passada.

ID
163702
Banca
CESGRANRIO
Órgão
Petrobras
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Uma sequência desordenada de números armazenada em um vetor é inserida em uma árvore AVL. Após a inserção nesta árvore, é feito um percurso em ordem simétrica (em ordem) e o valor de cada nó visitado é inserido em uma pilha. Depois de todos os nós serem visitados, todos os números são retirados da pilha e apresentados na tela.
A lista de números apresentada na tela está

Alternativas
Comentários
  • Letra B CORRETA

    Insiram em uma arvore AVL aqui e vejam que ao remover em in-order teremos um vetor ordenado ascendentemente. Este vetor alimenta uma pilha. Agora sim, teremos a reversão do ordenamento pois a pilha é FILO.
  • Uma outra idéia para resolver essa questao é:

    Imagina uma arvore bem simples com 3 elementos { 1, 2 , 3 },

    2 é a raiz da arvore
    1 é a subarvore esquerda
    3 é a subarvore direita

    Lembrando que os elementos da subarvore Esquerda sao sempre menores que a raiz
    os elementos da subarvore Direita sao sempre maiores que a raiz

    Ao percorrer a arvore em-ordem, faremos o percurso E-R-D (Esquerda-Raiz-Direita), ou seja, 1 depois 2 depois 3.
    Nessa mesma ordem eles serao inseridos na pilha (FILO)

    | 3 | --> ultimo elemento inserido
    | 2 |
    | 1 |
     ----

    Ao desempilhar teremos: 3, 2, 1.

    abs,
    bons estudos.
     

  • A inserção dos elementos desordenados em uma árvore AVL, ordena-os. Realizando o percurso em ordem simétrica ( em ordem) está percorrendo a árvore AVL em ordem crescente dos número e como eles são inseridos em uma pilha (LIFO) e retirado de lá para serem exibidos na tela, logo, está sendo retirado do maior número para o menor - ordenado descendente.
  • O início da questão (vetor desordenado...) é só blá blá blá. Uma vez que os números estejam em uma árvore AVL, sabemos que a árvore terá as seguintes propriedades:
    1- Cada nó terá 0, 1 ou 2 filhos (árvore binária);
    2- Os filhos da esquerda de um nó pai serão sempre menores que o nó pai e os da direita serão sempre maiores que o nó pai (árvore de busca binária);
    3- A árvore será balanceada e as diferenças de níveis entre as subárvores à esquerda e direita de um nó será de -1, 0 ou 1 (AVL).
    Ex:http://upload.wikimedia.org/wikipedia/commons/thumb/0/06/AVLtreef.svg/250px-AVLtreef.svg.png
    Quando percorrermos essa AVL na ordem simétrica (esquerda, visita nó, direita), teremos o seguinte:
    9, 12, 14, 17, 19, 23, 50, 54, 67, 72, 76. 
    Ou seja, ficou na ordem crescente dos números. Porém, a questão diz que à medida que os nós foram sendo visitados, esses números foram sendo inseridos em uma pilha. Então, a pilha ficou assim:
    76
    72
    67
    54
    50
    23
    19
    17
    14
    12
    9
    E depois esses números foram sendo impressos na tela. Como é uma pilha, então foi sendo retirado do topo (LIFO). Assim, ficou na tela:
    76, 72, 67, 54, 50, 23, 19, 17, 14, 12, 9.
    Ou seja, em ordem decrescente dos números.
  • Essa questão não tem mistério. Não é necessário fazer conta nem nenhum tipo de desenho ou rascunho. Basta pensar da seguinte maneira:

    A saída de um percurso do tipo em-ordem numa árvore AVL (ou binária) é uma lista ordenada crescentemente. Após inseri-los em uma pilha a ordem fica invertida, no sentido decrescente.

    Simples assim.
  • Muito bom o comentário do Alessandro, mas aqui vai somente uma pequena correção: 


    troque a palavra FIFO (First-In, First-Out = Primeiro a Entrar é o Primeiro a Sair = Fila) por LIFO (Last-In, First-Out = Último a Entrar Primeiro a Sair = Pilha)


ID
163975
Banca
FCC
Órgão
TJ-PI
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Uma lista ligada é uma estrutura que corresponde a uma sequência lógica de entradas ou nós. Cada nó armazena a localização do próximo elemento na sequência, ou seja, de seu nó sucessor. Nessa estrutura,

Alternativas
Comentários
  • Essa questão é um pouco capciosa, visto que em sua última frase comenta "Nessa estrutura," temos:

    a) confusa a inserção de um nó que não ocorre desta maneira

    b) ter um ponteiro no início e no fim não altera a velocidade de busca de um elemento no meio da lista

    c) topo está relacionado com pilhas

    d) questão correta se tratando de listas, porém a questão é sobre listas ligadas

    e) é exatamente assim que ocorre o armazenamento das lista ligadas

     

  • Pessoal, achei o livro de onde a FCC copiou e colou a questão(segue link abaixo). Só não concordo com uma coisa da alternativa E: listas podem ser implementadas tanto dinâmicamente como estaticamente. Dizer que uma lista é uma estrutura dinâmica está errado(lista pode ser dinâmica seria o correto). Mesmo que a questão se refira a listas ligadas em seu enunciado, acredito que uma maneira melhor de redigir o item C seria:

    C: o armazenamento de uma lista não requer uma área contígua de memória. Como listas ligadas são estruturas dinâmicas, normalmente são definidos procedimentos que permitem criar e remover nós na memória.


    Trecho do livro:

    Uma lista ligada é uma estrutura que corresponde a uma seqüência lógica de
    entradas ou nós. Tipicamente, em uma lista ligada há um ou dois pontos conhecidos
    de acesso — normalmente o topo da lista (seu primeiro elemento) e eventualmente
    o fim da lista (seu último elemento).
    Cada nó armazena também a localização do
    próximo elemento na seqüência, ou seja, de seu nó sucessor. Desse modo, o arma-
    zenamento de uma lista não requer uma área contígua de memória.

    Toda a informação em um nó pode ser abstraída para dois campos de interesse: info, o conteúdo do nó, e next, uma referência
    para o próximo nó da lista. A entrada que determina o topo da lista deve ser regis-
    trada à parte da lista. Essa informação é tipicamente mantida em um nó descritor
    da lista. A entrada que marca o fim da lista não precisa de indicação especial —
    tipicamente, o ponteiro nulo como valor de next marca o final da lista.


    Link:


    http://www.google.com.br/url?sa=t&source=web&cd=7&ved=0CEUQFjAG&url=http%3A%2F%2Fcalhau.dca.fee.unicamp.br%2Fwiki%2Fimages%2F5%2F5b%2FCap2.pdf&rct=j&q=enquanto%20a%20entrada%20que%20determina%20o%20topo%20da%20lista%20%C3%A9%20mantida%20em%20um%20n%C3%B3%20descritor%20dessa%20lista%2C%20a%20entrada%20que%20marca%20o%20fim%20da%20lista%20%C3%A9%20mantida%20fora%20do%20descritor.&ei=keOUTdHWArS80QGaqaXqCw&usg=AFQjCNGbXSConTh0PM5xLOn82YZkVejSqw&sig2=CIk0WGDiiWEhXNJgN4Hj4A&cad=rja

  • De acordo com esse trecho a letra c tb não estaria correta?  Temos a entrada que determina o topo da lista e é mantida em um no descritor (ate ai correto) e a entrada que marca o fim da lista é mantida fora do descritor (aqui tb acho que está correto já que o fim da lista não precisa de indicacao especial, conforme o trecho do livro diz, logo o fim da lista está fora do descritor) 

ID
163984
Banca
FCC
Órgão
TJ-PI
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

É um método de pesquisa ou busca, cujo algoritmo parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca, comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor. Trata-se do método denominado busca

Alternativas
Comentários
  • d-

    a busca binaria é umk algoritmo para encontrar um elemento em um array ORDENADO, baseado no esquema divide and conquer. sua complexidade em big o notation é [log2(n+1)] = [log2(n)+1]

  • Busca binária

    É o método que realiza a busca por um elemento, dividindo um vetor ordenado em duas partes e testando em qual delas o elemento deveria estar, procedendo da mesma forma para a parte provável, e assim, sucessivamente, até que o elemento seja encontrado. A utilização da busca binária diminui a complexidade da busca, mas não a da inserção ou da remoção.

    Complexidade:

    Pior caso: O(log n)

    Caso médio: O(log n)

    Melhor caso: 1

    Alternativa: D


ID
171217
Banca
FGV
Órgão
MEC
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

No contexto das estruturas de dados avançadas como listas, pilhas, filas e árvores é comum se encontrar referência à notação polonesa reversa. Nesse sentido, a expressão X*(Y+W)/(X-Y) é representada nessa notação, como:

Alternativas
Comentários
  •  

    • Notação Polonesa Reversa (ou posfix): é como a polonesa na qual os operandos aparecem após os operandos.

    • Exemplo: 
      tradicional: A * B - C / D 
      polonesa reversa: A B * C D / -
  • só corrigindo... a NPR ou Notação Polonesa Reversa é a notação a qual os OPERADORES aparecem após os OPERANDOS, esta é a mesma notação que se usam normalmente nas calculadoras cientificas como a HP 12C.

  •  X*(Y+W)/(X-Y)

    na notação polonesa inversa primeiro temos que colocar os operandos e em seguida os operadores. (posfixada)
    Então:

    1. temos o primeiro operando: X
    2. o segundo: Y+W = YW+
    3. posfixando o operador multiplicação: XYW+*  (este tb é o primeiro operando da divisão)
    4. segundo operando da divisão:  X-Y = XY-
    5. juntando os operandos e posfixando o operador divisão: 
    XYW+* XY-/ 

    Para notarmos a diferença vamos fazer a Notação Polonesa Normal, está é prefixada (operadores primeiro e operandos depois). E vem da operação mais "interna" para a mais "externa" (por isso a inversa é considerada mais rápida).

    1. operador mais interno é a divisão: /
    2. Primeiro operando da divisão: X*(Y+W) = *X+YW

    2.1. operador mais interno é a multiplicação (respeite os parênteses) = *
    2.2. primeiro operando da * = X
    2.3. segundo operando da * = Y+W = +YW

    3. Segundo operando da divisão = X-Y = -XY
    4. Concatenando os passos =  /
    *X+YW-XY

    Repare que a ordem das variáveis é a mesma nas três notações.




  • Para este tipo de questão, eu aconselho fazer a arvore binaria, dai fica facil a resolução sem medo, vejamos (desculpe o desenho, mas é o que da pra fazer com mao livre, rs). A partir do enunciado, construimos a arvore abaixo e dela podemos derivar as outras ordens:

    Ordem Prefixa (Polonesa): /*X+YW-XY
    Ordem Infixa (dada no enunciado): X*(Y+W)/(X-Y)
    Ordem Pos-fixa (Polonesa reversa): XYW+*XY-/

    Bons estudos!!!
  • Na notação polonesa invertida os operadores aparecem na ordem em que serão realmentes executados durante a avaliação da expressão.


ID
171625
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue os itens que se seguem, acerca dos conceitos relacionados às
estruturas de dados.

Em uma lista encadeada, o tempo de acesso a qualquer um de seus elementos é constante e independente do tamanho da estrutura de dados.

Alternativas
Comentários
  •  Em uma lista encadeada (ou ligada), o tempo de acesso é proporcional ao número de elementos (ou seja, do tamanho da estrutura de dados).

  • Quanto mais no final estiver o elemento procurado, mais tempo vai ser gasto percorrento a lista desde o início até esse elemento.

  • O acesso aos elementos em uma lista encadeada é feito sequencialmente, diferente do array em que o elemento pode ser acessado diretamente. Logo, se o item estiver no final da lista encadeada, a busca será da ordem de n, O(n). Já se estiver no início, será da ordem de 1, O(1).
  • GAB. Errado

    O acesso é proporcional ao numero de elementos


ID
171628
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue os itens que se seguem, acerca dos conceitos relacionados às
estruturas de dados.

Em uma árvore binária de busca, como em toda árvore binária, todos os nós têm grau máximo igual a 2. Entretanto, nem toda árvore binária pode ser considerada uma árvore binária de busca.

Alternativas
Comentários
  • Uma árvore binária de busca tem a propriedade adicional de que o filho esquerdo tem valor menor ou igual ao nó pai e o filho direito tem valor maior ou igual ao nó pai.

  • A árvore binária de busca é uma árvore binária BALANCEADA. Portanto nem toda árvore binária é de busca.

    Se não estiver balançeada, não é de busca.

  • - O grau de um nó é o número de sub-árvores.

    - Nas árvores binárias,  cada  nó  pode  ter  no  máximo  2 sub-árvores. Logo, o grau de cada nodo pode ser 0, 1 ou 2.


    Árvore Binária de Pesquisa  (ou Árvore Binária Ordenada, ou Árvore Binária de Busca)
    É aquela em que todo nodo tem chave maior que a chave dos seus descendentes à esquerda e menor  que a chave dos seus descendentes à direita. Conseqüentemente, uma árvore binária de pesquisa só admite uma ocorrência de cada chave.


    Existem outros tipos de árvore binária, entretanto, a árvore binária de busca não aceita elementos repetidos.


    Fonte: http://www.do.ufgd.edu.br/WellingtonSantos/Algo/Arvores.pdf

ID
171631
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue os itens que se seguem, acerca dos conceitos relacionados às
estruturas de dados.

Uma pilha pode ser considerada uma lista à qual foram impostas restrições quanto à forma de manipulação dos dados nela armazenados.

Alternativas
Comentários
  • Certo.

    Uma pilha é uma lista com restrições FILO (First In, Last Out) ou LIFO (Last In, First Out), ou seja, o primeiro elemento a entrar na pilha será o último a sair ou o último elemento a entrar, será o primeiro a sair.

  • A PILHA é uma estrutura baseada no princípio de LIFO. Sua representação diz tão somente a este princípio, podendo ser elaborada tanto em uma lista quanto em um vetor.

    Listas são estruturas lineares e dinâmicas. Possuem ponteiros para outros elementos e crescem na medida q é necessário.

    Vetores são estruturas lineares e estáticas. Possuem número FIXO de elementos.


ID
171634
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue os itens que se seguem, acerca dos conceitos relacionados às
estruturas de dados.

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.

Alternativas
Comentários
  •  A estrutura mais adequada seria uma pilha. Quando você quer desfazer uma modificação, vai querer resgatar o último estado salvo e não o primeiro.

  • Somente complementando,

    Quando você quer desfazer operações, você deve desfazer na ordem inversa a qual você aplicou as operações para manter estados consistêntes.

    A estrutura que vai apresentar as operações no ordem inversa as aplicadas é exatamente a pilha, por ser uma estrutura do tipo LIFO "Last-in First-Out"

ID
172618
Banca
FCC
Órgão
MPU
Ano
2007
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Uma desvantagem do hashing ou endereçamento de hash, como técnica utilizada nas estruturas de armazenamento, é que

Alternativas
Comentários
  • Tabela de dispersão (também conhecida por tabela de espalhamento ou tabela hash, do inglês hash) é uma estrutura de dados especial, que associa chaves de pesquisa a valores. Seu objetivo é, a partir de uma chave simples, fazer uma busca rápida e obter o valor desejado.

    A função de espalhamento ou função de dispersão é a responsável por gerar um índice a partir de determinada chave. Caso a função seja mal escolhida, toda a tabela terá um mau desempenho.

    O ideal para a função de espalhamento é que sejam sempre fornecidos índices únicos para as chaves de entrada. A função perfeita seria a que, para quaisquer entradas A e B, sendo A diferente de B, fornecesse saídas diferentes. Quando as entradas A e B são diferentes e, passando pela função de espalhamento, geram a mesma saída, acontece o que chamamos de colisão.


    Colisões

    A função de dispersão pode calcular o mesmo índice para duas chaves diferentes, uma situação chamada colisão. Por conta disso, a função deve ser projetada para evitar ao máximo a ocorrência de colisões. Por mais bem projetada que seja a função de dispersão, sempre haverá colisões. A estrutura de dispersão utiliza mecanismos para tratar as colisões, que dependem de características da tabela usada.

    Exemplo:

    função para distribuir nomes:

    Hash2.JPG
     

    Agora inserimos mais um nome:

    Renato Porto; Rua dos Elefantes, 687; Telefone (31) 3333-5555

    E temos uma colisão:

    Hash3.JPG
     

    Como se pode notar, a função utilizada para no exemplo causaria muitas colisões. Se inserirmos um outro nome começado com a letra R, teremos uma outra colisão na letra R. Se inserirmos "João Siqueira", a entrada estaria em conflito com o "José da Silva".

    Fonte com algumas alterações:

    http://pt.wikipedia.org/wiki/Tabela_de_dispers%C3%A3o


ID
174409
Banca
FGV
Órgão
MEC
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A respeito do tipo de dados abstrato DEQUE, é incorreto afirmar que:

Alternativas
Comentários
  • A fila dupla implementa as seguintes operações:
    - criar uma fila dupla DequeCreate;
    - destruir uma fila dupla DequeDestroy;
    - colocar um novo elemento na cabeça da fila dupla DequePush;
    - retirar um elemento da cabeça da fila dupla DequePop;
    - colocar um novo elemento na cauda da fila dupla DequeInject;
    - retirar um elemento da cauda da fila dupla DequeEject;
    - determinar se uma fila dupla está ou não vazia DequeEmpty.


    FONTE: sweet.ua.pt/~f706/algoritmos/GuiaoPraticas.pdf
  • DEQUE é uma estrutura de dados muito parecida com uma fila, porém as inserções e remoções podem ocorrer em ambas as extremidades da fila. 
    A Deque é dividida pelo total de posições em duas extremidades, onde o total não pode ser extrapolado, senão ocorre o estouro da memória, que já foi programada para uma determinada quantidade, não havendo possibilidade de mudança após já se ter definido o total. Os primeiros que são inseridos são os últimos a serem retirados, e é possível inserir elementos em ambos os lados mesmo que desproporcionalmente, desde que não ultrapasse o limite máximo.

    As operações possíveis são as que o colega postou acima.
  • Gabarito "E"
  • Ainda gostaria de saber porque que a C está errada.

  • Bruno Nerd, a C ta certa. A questão pede a incorreta. ENQUEUE e DENQUEUE, são comandos de lista simples. E DEQUE é duplamente encadeada


ID
177970
Banca
FCC
Órgão
TRT - 9ª REGIÃO (PR)
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

É uma estrutura de dados dividida em linhas e colunas. Desta forma, pode-se armazenar diversos valores dentro dela. Para obter um valor é necessário identificá-lo por meio do número da linha e da coluna onde está armazenado. Trata-se de

Alternativas
Comentários
  •  a) árvore é representada pela estrutura de nós hierarquicamente organizados a partir de um nó raiz

    b) a matriz é definida pela organização dos dados dispostos em linhas e colunas

    c) a pilha possui nós organizados um em cima do outro, onde para retirar o primeiro elemento é preciso remover todos

    d) a fita é conhecida como um meio de armazenamento físico de dados, utilizada para backup alguns anos atrás

    e) o deque é também conhecido como filas duplamente ligadas(o primeiro nó aponta pro segundo que também aponta pro primeiro)

  •  Matrix é um tipo de array com 2 ou + dimensoes. Matriz possui 1 index para linhas e 1 para cols. Matriz, diferente do struct, pode guardar dados homogeneos como int, float, double, char, bool e string

  • Matrizes são multidimencionais, ou seja, possuem mais de um índice.

     

    ex:

    3    5    6    8

    2    4    5    1 ---> linhas

    2    6    8    9

                - 

                -

           colunas


ID
178876
Banca
VUNESP
Órgão
CETESB
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A estrutura de dados do tipo pilha (stack) é um tipo abstrato de dado baseada no princípio

Alternativas
Comentários
  • Pilha

    As pilhas são estruturas baseadas no princípio LIFO (last in, first out), na qual os dados que foram inseridos por último na pilha serão os primeiros a serem removidos. Existem duas funções que se aplicam a todas as pilhas: PUSH, que insere um dado no topo da pilha, e PULL, que remove o item no topo da pilha.

    Fonte: pt.wikipedia.org/wiki/Estrutura_de_dados#Pilha

  • A função para empilhar é a PUSH para remover é POP. Estava errada no wikipedia.
  • e-

    https://www.youtube.com/watch?v=IWQ74f2ot7E&ab_channel=RetroGameMechanicsExplained


ID
188728
Banca
FCC
Órgão
TRT - 9ª REGIÃO (PR)
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Quando as inserções e as remoções ocorrem sempre no mesmo lado da lista, trata-se de uma estrutura de dados denominada

Alternativas
Comentários
  •  a) na fila a inserção é feita no final e a remoção é feita no início

    b) nas pilhas a remoção e a inserção é feita no topo da pilha

    c) no vetor a inserção e remoção podem ser feitas em qualquer elemento(indexada)

    d) na lista encadeada a inserção e remoção são feitas dinamicamente em qualquer posição(difere do vetor por não precisar definir inicialmente o tamanho total de elementos)

    e) na lista circular as inserções e remoções podem ocorrer em qualquer elemento assim como vetores e as encadeadas, a diferença é que o último elemento dessa estrutura aponta pro primeiro(utilizado em métodos de busca)

  • Pilha é um tipo de lista;)

  • Para stack (pilha), usam-se pop e push para remoção e inclusao sempre para o ultimo elemento

  • Pilha

    LIFO (Last In First Out) – Onde o último elemento inserido será o primeiro a ser retirado.

    Manipulação no mesmo extremo (topo): PUSH (insere); POP (retira); TOP (lê)

  • Pilha (LIFO): as inserções e as remoções são realizadas somente em um extremo. Apenas um ponteiro é necessário para inserções e remoções. Possui os métodos Push (inserir) Pop (remover) .

    Fila (FIFO): as inserções são realizadas em um extremo e remoções em outro.  Para inserções e remoções são necessários dois ponteiros.

    Alternativa: B


ID
192931
Banca
FCC
Órgão
MPE-RN
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Último dado armazenado é o primeiro a ser recuperado caracteriza a estrutura de dados do tipo

Alternativas
Comentários
  • * a) árvore:  Uma árvore é uma estrutura de dados em que cada elemento tem um ou mais elementos associados, podendo definir-se uma árvore recursivamente como:

    1. uma estrutura (uma árvore);
    2. um nó (designado por raiz), que contém a informação a armazenar e um conjunto finito de árvores (as sub-árvores).
    3. Não Existe árvores vazias, no minímo haverá um nó raiz(que não possui pai)

    Cada árvore tem apenas uma raiz. Além disso, os elementos associados a cada nó são habitualmente chamados de filhos desses nós. Os nós sem filhos de uma árvore são chamados de folhas.

    * b) pilha:  As pilhas são estruturas baseadas no princípio LIFO (last in, first out), na qual os dados que foram inseridos por último na pilha serão os primeiros a serem removidos. Existem duas funções que se aplicam a todas as pilhas: PUSH, que insere um dado no topo da pilha, e PULL, que remove o item no topo da pilha. Correta!

    * c) string: Não é uma estrutura de dados propriamente dita. Está mais para um tipo de dado. Geralmente os dados desse tipo são armazenados em estruturas de dados do tipo vetor (ou array).

    * d) fila: As filas são estruturas baseadas no princípio FIFO (first in, first out), em que os elementos que foram inseridos no início são os primeiros a serem removidos. Uma fila possui duas funções básicas: ENQUEUE, que adiciona um elemento ao final da fila, e DEQUEUE, que remove o elemento no início da fila. A operação DEQUEUE só pode ser aplicado se a fila não estiver vazia, causando um erro de underflow ou fila vazia se esta operação for realizada nesta situação.

    * e) boolean: Não é uma estrutura de dados propriamente dita. Está mais para um tipo de dado.
     

  • Só uma pequena correção... podem existir árvores vazias sim:

    Árvore binária é uma estrutura de dados caracterizada por:

    • Ou não tem elemento algum (árvore vazia).
    • Ou tem um elemento distinto, denominado raiz, com dois apontamentos para duas estruturas diferentes, denominadas sub-árvore esquerda e sub-árvore direita.

    http://pt.wikibooks.org/wiki/Algoritmos_e_Estruturas_de_Dados/%C3%81rvores_Bin%C3%A1rias


ID
201412
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

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.

Alternativas
Comentários
  • ERRADO. A matriz permite acessar um item diretamente bastando passar os índices de sua posição na estrutura. Ex.: M[10]

  • Caro colega, acredito que o erro da questão esteja na parte: "não podem ser acessados de maneira aleatória". Existem métodos para acesso aleatório como ramdom() em linguagem C.
  • O acesso aleatório de que a questão fala é o acesso feito passando-se os índices de linha e coluna, ex, matriz[2][5]. Nesse caso, é possível sim fazer acesso aleatório tanto em matrizes como em vetores, diferentemente do que ocorre em listas, onde é preciso percorrer a lista. Logo, a primeira parte da questão está incorreta.
    Outra parte errada é a que diz que "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". Como é possível fazer acesso aleatório nas matrizes, estas são usadas quando o volume de leitura é maior que o volume de inserção e remoção, visto que é possível fazer o acesso direto e, consequemente, melhorando o desempenho.
  • O erro da questão está logo no início:
    "Os dados armazenados em uma estrutura do tipo matriz não podem ser acessados de maneira aleatória..."

    Se isso fosse correto, estão só seria possível acessá-los de maneira sequencial. E sabemos que a matriz nos permite acesso a qualquer elemento através do índice de suas linhas e colunas.
    Ex.:  mat[1][2]: elemento que está na linha 1 e coluna 2; não é preciso percorrer a matriz desde o início para encontrá-lo.
  • errado- entre as caracteristicas do tipo array (matriz é array > 1d), estão:

    a - name a todos elementos[

    b - index único

    c - tipo

    d conteúdo individual 

    e - valores podem ser acessados de modo aleatorio. 


ID
201415
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A definição da estrutura pilha permite a inserção e a eliminação de itens, de modo que uma pilha é um objeto dinâmico, cujo tamanho pode variar constantemente.

Alternativas
Comentários
  • As pilhas são estruturas baseadas no princípio LIFO (last in, first out), na qual os dados que foram inseridos por último na pilha serão os primeiros a serem removidos. Existem duas funções que se aplicam a todas as pilhas: PUSH, que insere um dado no topo da pilha, e PULL, que remove o item no topo da pilha.

  • Só complementando.
    PUSH e POP também são vistas em questões de concursos como as operações na pilha.

    PUSH -> Colocar no topo da pilha.
    POP    -> Retirar do topo.
  • Questao passivel de anulacao. Uma pilha pode ter implementacao estatica ou dinamica.
  • Segundo Tanembaum,

    Ao contrário do que acontece com o vetor, a definição da pilha compreende a inserção e a eliminação de itens, de modo que uma pilha é um objeto dinâmico, constantemente mutável.
  • Esta definição do Tanembaum pode ser considerada ambigua, pois numa representação estática, por exemplo, apesar do número de elementos da lista ser variável o tamanho da lista, conseguentemente o objeto (que consiste em um espaço de memória reservado fixo), não varia. Já numa representação dinâmica tal afirmação seria considerada válida.
  • Vocês não estão confundindo TEnenmaum com TAnenbaum ?
  • Essa questão é polêmica, porque é inevitável pensar em Pilhas Sequenciais (implementadas por vetores estáticos)! No entanto, é comum que as bancas tratem por padrão Pilha como Pilha Encadeada (implementadas por listas dinâmicas). Dessa forma, a questão está perfeita!

     

    Resposta do Prof. Diego Carvalho(Estratégia Concursos)

  • Coragem


ID
209197
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca das estruturas de informação, julgue os itens a seguir.

Um grafo que não possui ciclos é chamado de conexo.

Alternativas
Comentários
  • Um grafo é dito conexo se existe um caminho entre dois quaisquer de seus vértices.

  • O gráfico que não possui ciclos é denominado de acíclico.

  • Errado. O certo seria:
    Um grafo que não possui ciclos é chamado de acíclico.
    OU
    Um grafo em que quaisquer que sejam os vértices distintos u e v existe sempre um caminho que os une é chamado de conexo.

     

     

  • Grafos sem ciclos são chamados acíclicos, e cíclicos, caso contrário.

ID
209200
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca das estruturas de informação, julgue os itens a seguir.

Na representação física de uma pilha sequencial, é necessário uso de uma variável ponteiro externa que indique a extremidade da lista linear onde ocorrem as operações de inserção e retirada de nós.

Alternativas
Comentários
  • Esta questão esta marcada como certa.

    Acho que a questão está errada pois , pilha sequencial trabalha com vetor, não necessitando de um ponteiro para controlar o topo da pilha.

    Caso não fosse uma "pilha sequencial" consequentemente uma "pilha encadeada", ai sim necessitaria de um ponteiro para fazer o controle do topo da pilha.

  • A questão está correta, numa pilha sequencial (implementada através de vetor), deve-se ter a informação da capacidade (quantos elementos, no máximo, a pilha pode conter - que é o tamanho do vetor), mas o tamanho da pilha é a informação de quantos elementos ela efetivamente. Assim o uso de um ponteiro, para indicar a extremidade será útil para realização das informações de inserção e retirada dos elementos (operações realizadas no topo da pilha)

  • Não concordo com o gabarito. Como a pilha é sequencial, pode ser representada através de um vetor.

    Para saber a extremidade da pilha, onde ocorrem as inserções e remoções, podemos utilizar uma variável numérica, e não necessariamente um ponteiro.

    Por exemplo, inserindo os elementos 3, 4 e 7 em uma pilha:
    v[0] = 3       (pilha: elemento  3
                                    posição     0)
                       local da última posição: 0
    v[1] = 4       (pilha: elemento  3      4
                                    posição     0      1)
                       local da última posição: 1
    v[2] = 7       (pilha: elemento  3      4      7
                                    posição     0      1      2)
                       local da última posição: 2

    Portanto, podemos utilizar essa variável numérica (local da última posição) ao invés de um ponteiro.
  • Na representação física de uma pilha sequencial, é necessário uso de uma variável ponteiro externa que indique a extremidade da lista linear onde ocorrem as operações de inserção e retirada de nós.

    Quando falado em lista linear, se pensa em uma lista ligada. Para se guardar onde deve ser feito a inserção e remoção, deve-se utilzar uma informação adicional(ponteiro) para apontar para o topo da pilha. A chamada cabeça da lista. Nessa cabeça também pode ser guardado o tamanho da lista. 
  • A questão trata de uma Pilha Sequencial (ou seja, implementada por meio de Vetores). Dessa forma, não é necessário o uso de ponteiros, esse seria o caso de uma Pilha Encadeada. Logo, discordo do gabarito!

  • RESOLUÇÃO:

    Na representação física de uma pilha sequencial, é necessário uso de uma variável ponteiro externa que indique a extremidade da lista linear, por onde ocorrem as operações de inserção e retirada de nós.

    Resposta: Certo


ID
209203
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca das estruturas de informação, julgue os itens a seguir.

Um grafo em que todos os nós possuem o mesmo grau é denominado acíclico.

Alternativas
Comentários
  • Um grafo chama-se acíclico se não contém ciclos simples.
    Grafo regular é um grafo em que todos os vértices tem o mesmo grau.

    Ex.: Grafo

  • Incorreto! O certo seria:
    Um grafo em que todos os nós possuem o mesmo grau é denominado regular.
    OU
    Um grafo em que para qualquer vértice v, não há qualquer caminho começando e acabando em v é denominado acíclico.

ID
209218
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca de pesquisa de dados e de operações básicas sobre
estruturas, julgue os itens que se seguem.

Ocorre o hashing quando não há o armazenamento de cada entrada de uma tabela em um específico endereço calculado a partir da aplicação de uma função chave da entrada.

Alternativas
Comentários
  • A tabela hash faz o mapeamento de um valor para uma memoria ou indice.

    Por exemplo, nomes q iniciam pela letra B, são apresentados a partir do índice 20. Nomes q iniciam pela letra D, estão a partir do índice 43....

    Então, o hashing ocorre quando há o mapeamento do valor para um índice ou uma memória.

  • ERRADA!

    O errado é o 'não' em "Ocorre o hashing quando NÃO há o (...)".
    O Hashing, ou dispersão, utiliza-se de funções para calcular o valor do endereço onde o dado será armazenado na tabela.

    Mais informações em: http://pt.wikipedia.org/wiki/Tabela_de_hashing
  • O conceito é exatamente o descrito porém o "não" é o nega a questão!
  • Errado. O contrário está correto:

    "Ocorre o hashing quando há o armazenamento de cada entrada de uma tabela em um específico endereço calculado a partir da aplicação de uma função chave da entrada. "
  • Funções hashing são utilizadas para calcular endereços específicos (índices) para cada entrada de uma tabela. É uma forma de espalhamento (dispersão) dos dados, que serão acessados, posteriormente, por tais endereços.

  • Gabarito Errado

    Ocorre hashing quando o armazenamento.

     

     

    Vamos na fé !

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !


ID
215632
Banca
CESPE / CEBRASPE
Órgão
MPU
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

No que se refere à lógica de programação, julgue o item a seguir.

O método recursivo que utiliza pilhas para executar um procedimento geralmente é automático, de modo que os compiladores podem acionar os procedimentos préprogramados para manipular essas pilhas.

Alternativas
Comentários
  • recursividade é a definição de uma subrotina (função ou método) que pode invocar a si mesma.

    Praticamente todas as linguagens de programação usadas hoje em dia permitem a especificação direta de funções e procedimentos recursivos. Quando uma função é invocada, o computador (na maioria das linguagens sobre a maior parte das arquiteturas baseadas em pilhas) ou a implementação da linguagem registra as várias instâncias de uma função (em muitas arquiteturas, usa-se uma pilha de chamada, embora outros métodos possam ser usados). Reciprocamente, toda função recursiva pode ser transformada em uma função iterativa usando uma pilha.

    http://pt.wikipedia.org/wiki/Recursividade_%28ci%C3%AAncia_da_computa%C3%A7%C3%A3o%29

  • Tá, mas o compilador na hora de gerar o assembly ainda tem que ir lá e empilhar parâmetros, depois call depois desempilhar algo ou pegar o retorno, ou não? Não me parece tão automático assim do ponto de vista do compilador


ID
218200
Banca
CESPE / CEBRASPE
Órgão
TRE-BA
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca de estruturas de dados do tipo vetor em linguagens
estruturadas, julgue os itens a seguir.

Vetores podem ser considerados como listas de informações armazenadas em posição contígua na memória.

Alternativas
Comentários
  • A redação não me ajudou muito, a idéia de "informação" normalmente está relacionada com o processamento dos dados. "Lista de Informação" para mim é um vetor (matriz unidimensional) de uma estrutura. A parte final do texto,  esta correta, "armazena em posição contígua na memória". No entanto, o cespe considerou correto, se alguém puder me esclarecer as idéias eu agradeço.
  • Listas de informações é a mesma coisa de lista de dados. Não nada relacionado a processamento. Questão correta.
  • Informação é o resultado do processamento, manipulação e organização de dados, de tal forma que represente uma modificação (quantitativa ou qualitativa) no conhecimento do sistema (pessoa, animal ou máquina) que a recebe.
    http://pt.wikipedia.org/wiki/Informação

    No contexto exemplificativo da prova o dado pode ser considerado como a própria informação, tendo em vista que trata-se de uma simplificação.

    O que também pode levar o candidato ao erro é relacionar vetores (arrays), que é uma estrutura de dados básica, a uma lista, estrutura de dados mais complexa. Alguém saberia justificar tal visão da CESPE?
  • Conceito de Vetores

    1) Uma variável do tipo vetor pode armarzenar uma coleção de valores do mesmo tipo

    2) Os elementos da coleção são armazenados em posições contíguas de memória.

    3) Cada elemento da coleção é identificado por um seletor (ou índice) que indica a posição do elemento na coleção.
  • VETORES

     

     Os vetores possuem tamanho fixo e suas posições são contíguas na memória.


     O índice inicial de um vetor é zero. Dessa forma, ao se realizar uma varredura em um array, sempre devemos considerar o intervalo de 0 ao tamanho do vetor - 1;

     

    Fonte: Itnerante

  • Acertei a questão, mas a palavra informação em vez de dados realmente pode induzir ao erro.


ID
218203
Banca
CESPE / CEBRASPE
Órgão
TRE-BA
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca de estruturas de dados do tipo vetor em linguagens
estruturadas, julgue os itens a seguir.

O uso de vetores deve ser evitado em situações em que um conjunto de dados do mesmo tipo precisa ser armazenado em uma mesma estrutura.

Alternativas
Comentários
  • O uso de vetores deve ser evitado usados em situações em que um conjunto de dados do mesmo tipo precisa ser armazenado em uma mesma estrutura.

  • Errado. Uma matriz é uma coleção de variáveis do mesmo tipo que é referenciada por um nome comum e consistem em posições contíguas na memória.
  • Incorreto. O uso de vetores é justamente para o armazenamento de um "conjunto de dados do mesmo tipo precisa ser armazenado em uma mesma estrutura".  Então não podemos evitar o seu uso.

  • Esse tipo de estrutura deve ser UTILIZADO para tipos de dados do mesmo TIPO.

     


ID
218206
Banca
CESPE / CEBRASPE
Órgão
TRE-BA
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca de estruturas de dados do tipo vetor em linguagens
estruturadas, julgue os itens a seguir.

Uma posição específica de um vetor pode ser acessada diretamente por meio de seu índice.

Alternativas
Comentários
  • Item Correto.A forma de acessar aos elementos de um array é direta, ao contrário das listas. Isto quer dizer que o elemento desejado obtêm-se a partir do seu índice e não é preciso procurá-lo elemento por elemento.
  • Vetores guardam um número fixo de elementos, normalmente do mesmo tipo. Elementos são acessados utilizando um índice,
    inteiro, que referencia uma posição seqüencial do vetor.


ID
224527
Banca
FCC
Órgão
METRÔ-SP
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

É uma noção simples, abstrata e intuitiva, usada para representar a ideia de alguma espécie de relação entre os objetos. Graficamente, aparece representado por uma figura com nós ou vértices. Trata-se dos

Alternativas
Comentários
  • Gabarito: C

    Comentário: Achei a questão um pouco mal formulada, mas como cita nós ou vértices, daí fica fácil de sabermos que trata-se de grafos.

    Definição (by Wikipedia):
    Em matemática e ciência da computação, grafo é o objeto básico de estudo da teoria dos grafos. Tipicamente, um grafo é representado como um conjunto de pontos (vértices) ligados por retas (as arestas). Dependendo da aplicação, as arestas podem ser direcionadas, e são representadas por "setas".

ID
229876
Banca
UFF
Órgão
UFF
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Na estrutura de dados tipo pilha, há duas operações básicas para empilhamento e desempilhamento. Essas operações são conhecidas como:

Alternativas
Comentários
  • Pilha,  último a entrar, primeiro a sair. Last In, First Out ( LIFO )

    PUSH -> empurra um dado para  o topo da pilha
    POP   ->  Retira um dado do topo da pilha.

ID
230107
Banca
FUNCAB
Órgão
PRODAM-AM
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Qual das estruturas de dados abaixo é comumente usada para implementar índices multiníveis em SGBDs comerciais por apresentarem bom desempenho para grandes volumes de dados?

Alternativas
Comentários
  • uma Árvore B+ é um tipo de árvore. Representa a ordenação de dados de uma maneira que permita uma inserção e remoção eficiente de elementos. É um índice dinâmico de multi-níveis com ligações máximas e mínimas no número de chaves em cada nodo. Os sistemas de ficheiros NTFS para o Microsoft Windows, o sistema de ficheiros ReiserFS para Unix, o XFS para IRIX e Linux, e o JFS2 para AIXOS/2 e Linux, usam este tipo de árvore.

    Uma árvore B+ é uma variação da árvore B. Numa árvore-B+, contrastando com uma árvore-B, todos os dados são gravados nas folhas. Os nodos internos contêm apenas chaves e apontadores da árvore. Todas as folhas estão no mesmo nível mais baixo. Os nodos das folhas também estão ligados entre si como uma lista de ligações para efectuar consultas facilmente.

  • GABARITO: C

                  Exemplo simples de árvore B+ referenciando chaves de 1 até 7 aos dados d1 até d7. Os apontadores em vermelho permitem o acesso sequencial ordenado das chaves inseridas na árvore

    BONS ESTUDOS!!!!

ID
234370
Banca
NC-UFPR
Órgão
UFPR
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Em se tratando de gerenciamento da informação, dados estruturados que descrevem, identificam, explicam, localizam e, portanto, facilitam a recuperação, uso e gestão de recursos de informação, são chamados de:

Alternativas
Comentários
  • Metadados (DD ou Dicionário de dados), ou Metainformação, são dados sobre outros dados. Um item de um metadado pode dizer do que se trata aquele dado, geralmente uma informação inteligível por um computador. Os metadados facilitam o entendimento dos relacionamentos e a utilidade das informações dos dados.

  • Só corrigindo o colega: Metadados é diferente de dicionários de dados. Apesar disso, o seu conceito está excelente.

    Um dicionário de dados (do inglês data dictionary) é uma coleção de metadados que contêm definições e representações de elementos de dados. Dentro do contexto de SGBD, um dicionário de dados é um grupo de tabelas, habilitadas apenas para leitura ou consulta, ou seja, é uma base de dados, propriamente dita, que entre outras coisas, mantém as seguintes informações:

    • Definição precisa sobre elementos de dados
    • Perfis de usuários, papéis e privilégios
    • Descrição de objetos
    • Integridade de restrições
    • Stored procedures (pequeno trecho de programa de computador, armazenado em um SGBD, que pode ser chamado freqüentemente por um programa principal) e gatilho
    • Estrutura geral da base de dados
    • Informação de verificação
    • Alocações de espaço

    Fonte: Wikipédia.

    Bons estudos a todos.

  • Metadados são informações que acrescem aos dados e que têm como objetivo informar-nos sobre eles para tornar mais fácil a sua organização. Um item de um metadado pode informar do que se trata aquele dado numa linguagem inteligível para um computador. Os metadados tem a função de facilitar o entendimento dos relacionamentos e evidenciar a utilidade das informações dos dados.

     

    Praticamente todos os dispositivos digitais geram metadados a partir do uso que fazemos. Por exemplo, ao tirar uma foto, além de gravar a foto na memória da foto, metadados são associados a esta foto descrevendo informações sobre o modelo da câmera, tipo de ISO, data, tamanho e formato do arquivo e até o local de onde a foto foi tirada se o aparelho tiver GPS.

     

    Fonte: safernet

  • O conceito destacado nessa assertiva é o de METADADOS, que são dados estruturados que descrevem, identificam, explicam, localizam e, portanto, facilitam a recuperação, uso e gestão de recursos de informação.

  • (AOCP 2020) Os dados técnicos extraídos de uma fotografia digital: câmera usada, data de criação da fotografia, formato, tamanho do arquivo e esquema de cor são informações estruturadas que auxiliam na descrição, identificação, gerenciamento, localização, compreensão e preservação de documentos digitais facilitando a interoperabilidade de repositórios. Essa informação inteligível por computador é conhecida como

    B) Metadados.

    (CESPE MINISTÉRIO PÚBICO ESTADUAL 2020) Os metadados descrevem, explicam, localizam e facilitam a recuperação de um recurso informacional, permitindo que esse recurso esteja acessível futuramente. (C)


ID
235426
Banca
CETAP
Órgão
AL-RR
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Matrizes são estruturas de dados de n-dimensões. Por simplicidade, chamaremos de matrizes as matrizes bidimensionais numéricas (que armazenam números inteiros). Sendo assim, marque a alternativa INCORRETA.

Alternativas

ID
238276
Banca
CESPE / CEBRASPE
Órgão
ABIN
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca de programas aplicativos e das arquiteturas de
computadores, julgue os próximos itens.

Em uma pilha implementada na CPU, se a disposição dos bytes seguir a forma little endian, o endereço de memória do topo da pilha apontará para o endereço do byte mais significativo do último valor empilhado. Se a disposição dos bytes seguir a forma big endian, o topo da pilha será o endereço do byte menos significativo do último valor empilhado.

Alternativas
Comentários
  • A definição está invertida. Veja aqui

    http://techforb.blogspot.com/2007/10/little-endian-vs-big-endian.html

    Little Endian

    Address Value
    1000 12
    1001 ef
    1002 cd
    1003 ab

    Big Endian

    Address Value
    1000 ab
    1001 cd
    1002 ef
    1003 12
  • Endiannes - é a ordenação de bytes na memória para representar dados. Há várias maneiras para se armazenar os bits de um dado na memória, mas duas dessas maneiras são bem conhecidas: little endian e big endian.

    - Little endian: o byte menos significativo do dado é armazenado no endereço de memória mais baixo reservado para o dado.
    - Big endian: o byte mais significativo do dado é armazenado no endereço de memória mais baixo.

  • Vou usar o exemplo acima.
    Imagine o seguinte:

    hex 0xabcdef12.
    em uma pilha os dados são empilhados do endereço maior ao menor.

    Se o endereçamento for little endian, então ab que é o bit mais significativo estará alocado no endereço maior(na base da pilha) e consequentemente 12 no endereço menor (no topo).

    O big endian coloca o bit menos significativo no endereço maior(base) e o mais significativo no endereço meor(topo).

    A questão está invertida, como afirmou o colega.
  • A meu ver a questão está mal formulada por desconsiderar o tamanho das words da pilha.
    sp -> |0xbbaa| 0xffd3
              |0x0011| 0xffe9
              |0x1122| 0xffff

    Supondo, como na ilustração acima, que essa pilha tenha palavras de 16 bits, o stack pointer em uma arquitetura little endian (pentium) estará sim apontando para o byte mais significativo (0xaa) do último valor empilhado (0xbbaa).
    Por fim, a questão está errada porque esse conceito "endianess" só é válido para memórias externas ao processador.
  • Agora que você entendeu, resolva essa questão: http://uva.onlinejudge.org/external/5/594.html
  • o conceito de ENDIANESS significa, entre outras coisas, o estudo da ordenação dos bytes NA MEMÓRIA, trata da organização dos bytes na MEMÓRIA e não dentro da CPU, conforme diz a questão.
    Esse é UM dos erros da questão.
  • Eu nunca tinha visto esses conceitos, excelentes comentários dos colegas...

    Mas acertei a questão por saber que o CESPE tem esse costume de inverter conceitos...
  • Se eu ganhasse 1 real para cada vez que o CESPE inverte os conceitos eu estaria rico!
  •  O topo da pilha é o último endereço que guardou algo? Se for isso, então a questão era pra estar C.

  • Prezados,

    Em resumo , o little endian significa que o byte de menor ordem do número é armazenado na memória nos menores endereços, por outro lado o big endian significa que os bytes de maior ordem de um número são armazenados nos menores endereços, ou seja , o comando da questão inverteu os conceitos.




    Portanto a questão está errada.

  • Se o gabarito dessa questão realmente for esse, então significa que o MAIOR endereço de memória está na base da pilha. Errei porque achei que ali seria o offset 0.


ID
238306
Banca
CESPE / CEBRASPE
Órgão
ABIN
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A respeito dos métodos de ordenação, pesquisa e hashing, julgue
os seguintes itens.

As tabelas hashing, ou tabelas de dispersão, podem ser usadas no processo de gerenciamento de memória virtual pelo sistema operacional.

Alternativas
Comentários
  • Tabelas hash ou estrutura de dispensão é uma estrutura de dados especial, que associa chave de pesquisa a valores. Seu objetivo é, a partir de uma chave simples, fazer uma busca rápida e obter o valor desejado.
    São utilizadas para implementar vetores associativos, conjuntos e cachês. São utilizadas também para indexar grandes volumes de informação.
  • Resposta correta.

    Tabelas hash são muito utilizadas para gerenciamento de espaços de endereçamento virtual paginado de 64 bits utilizando a técnica da Tabela de Páginas Invertida (TPI).

    Esclarecendo:

    Como a TPI apresenta o mesmo número de entradas que a quandidade de molduras de página (page frames), o mapeamento virtual-físico precisa ser feito através da tupla (processo, página virtual). Esse esquema torna o mapeamento mais difícil e demorado (pois a tabela de páginas deveria ser percorrida sequencialmente). Então uma solução para agilizar o mapeamento é utilizar tabelas hash.


    Fonte: Sistemas Operacionais Modernos - Andrew Tanembaum
  • Prezados,

    Segundo Silderschatz , em seu livro Sistemas operacionais, página 217, a paginação é um esquema de gerência de memória que permite que o espaço de endereços físicos de um processo seja não contíguo. Uma técnica comum para tratar de espaços de endereços maiores que 32 bits é usar uma tabela de página hash, com o valor de hash sendo o número da página virtual.

    Portanto a questão está correta.


ID
238309
Banca
CESPE / CEBRASPE
Órgão
ABIN
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A respeito dos métodos de ordenação, pesquisa e hashing, julgue
os seguintes itens.

A estabilidade de um método de ordenação é importante quando o conjunto de dados já está parcialmente ordenado.

Alternativas
Comentários
  • A estabilidade de um método de ordenação é importante quando você quer preservar a associação entre chaves e valores em uma estrutura de dados.

     

    Exemplo, temos o vetor:

    [0] -> 666

    [1] -> 7

    [2] -> 14

     

    Por ordenação instável:

    [0] -> 7

    [1] ->14

    [2] -> 666

     

    Por ordenação estável:

    [1] -> 7

    [2] ->14

    [0] -> 666

     

    Por exemplo, em PHP usa-se sort ( $array ) para ordenação instável, e asort ($array) para ordenação estável.

     

    Algoritmos Estáveis incluem Bubblesort, Mergesort e Insertsort.

    Algoritmos Instáveis incluem o Quicksort, Heapsort, Selectionsort e Shellsort

     

  • Discordo do gabarito.
    Um método de ordenação é dito estável se ele preserva a ordem relativa dos itens com chaves duplicadas/iguais.

    Assim, se temos um conjunto de dados parcialmente ordenado como [1, 1, 2, 4, 4, 3, 5, 5, 5], o numero de trocas realizadas por um método instável deve ser maior. Então podemos concluir que o fato de um método ser estável é relavante quando o conjunto está parcialmente ordenado.

    Gostaria que alguém comentasse a respeito.
  • Concordo com o gabarito. O fato do algoritmo ser estável ou não é irrelevante para melhorar sua performance na ordenação de um conjunto de dados já parcialmente ordenado. Como o colega expos, um algorimo é estável se ele preserva a ordem relativa dos itens comchaves duplicadas/iguais. Veja que o fato do algoritmo não preservar a ordem dos itens com chaves duplicadas/iguais não afetará a performance da ordenação. Um exemplo: nas três primeiras posições temos [1,1,1,...]. Ora, não importa (para uma ordenação) se o 1 que está na primeira posição se manterá lá. Na primeira posição pode estar o segundo ou o terceiro 1, desde que seja um 1. 

    []'s, espero ter ajudado!
  • Prezados,

    Um método de ordenação se diz estável se preserva a ordem de registros de chaves iguais, ou seja, os registros aparecem na sequência ordenada na mesma ordem que estão na sequência inicial. Isso só é importante quando há dados associados as chaves de ordenação, sendo indiferente se o conjunto de dados já está parcialmente ordenado ou não.

    Portanto a questão está errada.


  • 2011

    Os métodos de ordenação podem ser classificados como estáveis ou não estáveis. O método é estável se preserva a ordem relativa de dois valores idênticos. Alguns métodos eficientes como shellsort ou quicksort não são estáveis, enquanto alguns métodos pouco eficientes, como o método da bolha, são estáveis.

    Certa

     

     

    O Bubble é o pior algoritmo (menos eficiente) e é estável

     


ID
238336
Banca
CESPE / CEBRASPE
Órgão
ABIN
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue os itens seguintes, relativos a programação básica.

Um array é um conjunto de elementos de tipos homogêneos, ou seja, todos os seus elementos são do mesmo tipo de dados. Uma estrutura, ou registro, é um conjunto de elementos heterogêneos, porque seus elementos não são obrigatoriamente do mesmo tipo de dados.

Alternativas
Comentários
  • Array é uma estrutura estática que armazena elementos de um mesmo tipo, identificados por um combinação de linha e coluna.


    Registros são conjuntos de dados logicamente relacionados, que comportam tipos diferentes: numérico, literal, lógico.

  • Prezados,

    O comando da questão não especifica nenhuma linguagem especifica , e pede que ela seja respondida com conceitos relacionados a programação básica.
    O comando da questão afirma que em um array todos os elementos são do mesmo tipo de dados, enquanto um registro é um conjunto de elementos de diferentes tipos de dados. Apesar de em determinadas linguagens não sermos amarrados a essa condicionante, quando tratamos de programação básica , essa é a regra.

    Portanto a questão está correta.
  • Arrays


     Um array é uma estrutura de dados que armazena um conjunto
    de elementos de forma que os mesmos são acessados por um
    índice.
     Os arrays podem ser unidimensionais (vetores) ou
    multidimensionais (matrizes).
     Os arrays são agregados homogêneos, ou seja, todos os seus
    elementos são de um mesmo tipo.

     

    Fonte: Itnerante


ID
240637
Banca
FCC
Órgão
TRT - 22ª Região (PI)
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Uma fila duplamente terminada, isto é, uma estrutura linear que permite inserir e remover de ambos os extremos é chamada

Alternativas
Comentários
  • Árvore: É uma estrutura de dados em que cada elemento tem um ou mais elementos associados, podendo definir-se uma árvore recursivamente como: - uma estrutura (uma árvore); - um nó (designado por raiz), que contém a informação a armazenar e um conjunto finito de árvores (sub-árvores); - não existe árvores vazias, no mínimo haverá um nó raiz (que não possui pai). Cada árvore tem apenas uma raiz, além disso, os elementos associados a cada nó são habitualmente chamados filhos desses nós. Os nós sem filhos de uma árvore são chamados folhas.

    Autômato: Modelo matemático de uma máquina de estados finitos. Funciona como um reconhecedor de uma determinada linguagem e serve para modelar uma máquina ou, se quiserem, um computador simples.

    Deque: São filas duplamente ligadas, isto é, filas com algum tipo de prioridade. Por exemplo, sistemas distribuídos sempre necessitam que algum tipo de processamento seja mais rápido, por ser mais prioritário naquele momento, deixando outro tipos mais lentos ou em fila de espera, por não requererem tanta pressa.

  • Uma ´ultima estrutura associada a filas e pilhas é o deque. O nome vem da abreviação de Double-Ended Queue (fila com dois fins).
    No deque podemos realizar inserções e remoções nas suas duas extremidades. A forma mais simples de implementar um deque é com uma lista duplamente ligada circular, que permite operações em tempo O(1) para inserções e remoções em ambas as extremidades.
  • Deque
     É uma estrutura de dados similar a uma fila, no entanto, suporta inserção e remoção em ambas extremidades da estrutura.
     Essa estrutura usa duas variáveis de controle, uma para referenciar o inicio e outra para referenciar o fim da estrutura.

  • Deque: as inserções e remoções são permitidas apenas nas extremidades da lista. 

    Alternativa: D


ID
240700
Banca
FCC
Órgão
TRT - 8ª Região (PA e AP)
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A estrutura de dados linear que obedece o seguinte critério: o último elemento inserido será o primeiro elemento a ser retirado (last in first out ? LIFO) é:

Alternativas
Comentários
  • Pilha: São estruturas baseadas no princípio LIFO (last in, first out - último que entra, primeiro que sai), na qual os dados que foram inseridos por último na pilha serão os primeiros a serem removidos. Existem 2 funções que se aplicam a todas as pilhas: PUSH que insere um dado no topo da pilha e POP que remove o item no topo da pilha.

    Fila: São estruturas baseadas no princípio FIFO (first in, first out - primeiro que entra, primeiro que sai), em que os elementos que foram inseridos no início são os primeiros a serem removidos. Uma fila possui 2 funções básicas: ENQUEUE que adiciona um elemento ao final da fila, e DEQUEUE que remove o elemento no início da fila. A operação DEQUEUE só pode ser aplicado se a fila não estiver vazia, causando um erro de underflow ou fila vazia se esta operação for realizada nesta situação.

    Árvore binária: É uma árvore em que cada nó tem no máximo 2 filhos. São muito utilizadas como estruturas de buscas, como árvores de buscas binária e árvores AVL.

    Árvore AVL: Ou árvore balanceada pela altura. É uma árvore de busca binária auto-balanceada.

    Lista circular: É uma lista onde de qualquer elemento da estrutura é possível acessar qualquer outro.

  • Questões da FCC: Ou são ridiculamente fáceis ou têm mais de uma alternativa correta.

ID
240712
Banca
FCC
Órgão
TRT - 8ª Região (PA e AP)
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O procedimento abaixo preenche uma matriz quadrada n × n com:

• −1 nos elementos abaixo da diagonal principal;
• 0 nos elementos da diagonal principal;
• 1 nos elementos acima da diagonal principal.

procedure PreencheMatriz;
var
   i, j: integer;
begin
   for i:= 1 to n do
      for j := 1 to n do
         if i > j then matriz[i,j] := ?
         else if i < j then matriz[i,j] := ?
         else matriz[i,j] := ?
end;

Os valores que devem ser respectivamente colocados no primeiro, segundo e terceiro comandos de atribuição, marcados no código com uma interrogação (?), para o preenchimento correto da matriz são:

Alternativas
Comentários
  • i são as linhas da matriz

    j são as colunas da matriz

    se i for maior que j, ou seja, se a linha for maior que a coluna, eu estou abaixo da diagonal principal, logo essa posição deve ser -1

    se i for menor que j, ou seja, se a linha for menor que a coluna, eu estou acima da diagonal principal, logo essa posição deve ser 1

    e se caso nenhuma dessas condições acima seja verdadeira, eu tenho que linha é igual a coluna que é igual a diagonal principal, logo essa posição deve ser 0

     

    ALTERNATIVA E

  • Supondo:

    n = 5

    A impressão ficaria assim:

    01111

    -10111

    -1-1011

    -1-1-101

    -1-1-1-10

    Logo:

    [1,0] = -1 -> equivale ao "IF" imprime menos um;

    [0,1] = 1 -> equivale ao "ELSE IF" que imprime um;

    [0,0] = 0 -> equivale ao "ELSE" que irá imprimir zero;


    Resposta: alternativa E.




ID
245185
Banca
CESPE / CEBRASPE
Órgão
TRT - 21ª Região (RN)
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considerando que uma tabela hash (tabela de espalhamento) possua
quatro posições numeradas 0, 1, 2, 3 e 4, e que nela esteja
armazenada uma sequência de quadrado de valores inteiros definida
como 1, 4, 9, 16, ., n2, segundo a função f (x) = x mod 5, julgue os
itens que se seguem.

Cada posição da tabela receberá aproximadamente o mesmo número de elementos.

Alternativas
Comentários
  • Esta questão teve o gabarito trocado. Justificativa do CESPE abaixo:

    As posições 2 e 3 nunca serão preenchidas. Assim, não é correto afirmar que cada posição da tabela receberá o mesmo número de elementos, razão pela qual se opta pela alteração do gabarito de CERTO para ERRADO.

     

    http://www.cespe.unb.br/concursos/trt21rn2010/arquivos/TRT_21_JUSTIFICATIVAS_DE_ALTERACOES_DE_GABARITO_FINAL__2_.PDF

  • Olá, pessoal!

    O gabarito foi atualizado para "E", após recursos, conforme edital publicado pela banca, e postado no site.

    Justificativa da banca: 
    As posições 2 e 3 nunca serão preenchidas. Assim, não é correto afirmar que cada posição da tabela receberá o mesmo número de elementos, razão pela qual se opta pela alteração do gabarito de CERTO para ERRADO.

    Bons estudos!

  • Vou fazer uma explicação para leigos pois tive dificuldade em entender o que a questão pedia.
    A questão quer que você imagine uma tabela com 4 colunas onde você irá armazenar os dados de acordo com o resultado da conta x mod 5 onde os valores de x são uma sequência de quadrado de valores, ou seja, 1, 4, 9, 16, ., n2. Aí você faz as contas, para x=1, x mod 5 (resto da divisão de 1 por 5) é 1, para x=4, x mod 5 = 4, e assim por diante, bom, o que acontece é que o resultado desta conta nunca será 2 ou 3, assim, não podemos dizer que cada posição da tabela receberá aproximadamente o mesmo número de elementos pois como a conta nunca retorna 2 ou 3, estas duas posições nunca receberão nenhum elemento.
  • Complementando...

    0 mod 5 = 0 (zero não é divisível por 5 então o resto é zero)
    1 mod 5 = 1 (1 não é divisível por 5 então o resto é 1)4 mod 5 = 4 (4 não é divisível por 5 então o resto é 4)9 mod 5 = 4 (9 é divisível por 5, onde 5x1=5 e resto é 4)16 mod 5 = 1 (16 é divisível por 5, onde 3x5=15 e resto é 1)25 mod 5 = 0 (25 é divisível por 5, onde 5x5=25 e resto é 0)36 mod 5 = 1 (36 é divisível por 5, onde 7x5=35 e resto é 1)

ID
245188
Banca
CESPE / CEBRASPE
Órgão
TRT - 21ª Região (RN)
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considerando que uma tabela hash (tabela de espalhamento) possua
quatro posições numeradas 0, 1, 2, 3 e 4, e que nela esteja
armazenada uma sequência de quadrado de valores inteiros definida
como 1, 4, 9, 16, ., n2, segundo a função f (x) = x mod 5, julgue os
itens que se seguem.

Na tabela hash apresentada, não haverá colisões em suas posições.

Alternativas
Comentários
  • ERRADO. Obviamente haverá colisão pois temos apenas quatro posições para armazenar um conjunto numérico infiinto (1, 4, 9, 16, ., n2)

  • A colisão pode ser detectada já no terceiro elemento a ser inserido na tabela:
    Elementos = {1, 4, 9, 16, ..., n2, ...}
    elemento 1 => posição: f(1) = 1
    elemento 4 => posição: f(4) = 4
    elemento 9 => posição: f(9) = 4 (colisão com o valor 4 inserido na posição 4)
  • "... quatro posições numeradas 0, 1, 2, 3, 4 ..." kkk

ID
249397
Banca
CESPE / CEBRASPE
Órgão
DETRAN-ES
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Com relação à programação, algoritmos e estrutura de dados, julgue
os itens seguintes.

No método de hashing, por meio de acesso sequencial, são utilizados tabelas e mapas para recuperar informações de endereço de arquivos de forma rápida e eficiente.

Alternativas
Comentários
  • se ouver colisao ocorre processamento sequencial!
  • Por meio do acesso sequencial são utilizadas listas para recuperar a informação
  • Acesso sequencial é EXATAMENTE o que hashing NÃO FAZ!!

    O hashing é um FUNÇÃO de mapeamento, ABSOLUTAMENTE não relacionado a acesso sequencial. O máximo de sequencial que é feito, é quando há colisões é usa-se o Endereçamento Aberto por Busca Linear para colocar essa nova chave na tabela ou para buscar essa chave.
  • "No método de hashing, por meio de acesso sequencial, são utilizados tabelas e mapas para recuperar informações de endereço de arquivos de forma rápida e eficiente. "

    Normalmente não acesso sequencial em hashing (salvo quando as colisões são tratadas com listas encadeadas). E quando se fala em acesso sequencial, não há o que se falar de método eficiente, pois é o método de busca mais ineficiente que existe.
    Assertiva incorreta!
  • Similarmente ao que ocorre em banco de dados: 
    Acesso sequencial = lento
    Acesso direto = rápido


ID
249418
Banca
CESPE / CEBRASPE
Órgão
DETRAN-ES
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Com relação à programação, algoritmos e estrutura de dados, julgue
os itens seguintes.

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.

Alternativas
Comentários
  • CORRETO!

    O conceito de filas é semelhante ao mundo real. Imagine uma fila de banco onde o primeiro que chegou será atendido e sairá primeiro. Os que chegaram depois serão enfileirados ao final, sendo atendidos pela ordem de chegada.
  • Gabarito Certo

    Fila, também chamado de FIFO (acrônimo do inglês First In, First Out , primeiro a entrar, primeiro a sair) é o nome dado a estrutura de dados em que ocorrem inserção de dados em um extremo e sua saída por outro, obedecendo assim "a ordem de chegada" como se fosse uma fila comum de pessoas. A implementação pode realizar-se com ajuda de vetores, assim como através do uso de ponteiros. Se a fila é implementada com o uso de vetores, o número máximo de elementos armazenados deve ser estabelecido no código do programa antes da compilação (fila estática) ou durante sua execução (fila pseudo-estática).

     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • RESOLUÇÃO:

    Correto, no algoritmo do tipo fila, o primeiro que entra, será o primeiro que sai.

    Resposta: Certo


ID
260215
Banca
FCC
Órgão
TRT - 4ª REGIÃO (RS)
Ano
2011
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

No contexto das vinculações de subscritos e categorias de matrizes, NÃO se inclui como uma categoria a matriz

Alternativas
Comentários
  • • Matriz Estática
    – As faixas de subscrito estão estaticamente
    vinculadas e a alocação de armazenamento é
    estática (feita antes da execução)
    – Vantagem: eficiência (em alocação dinâmica)
    • Matriz fixa dinâmica na pilha
    – Faixas de subscrito estão estaticamente
    vinculadas, mas a alocação é feita no momento da
    declaração durante a execução
    – Vantagem: eficiência de espaço
    • Matriz Dinâmica na Pilha
    – Faixas de subscritos estão dinamicamente
    vinculadas e a alocação de armazenamento é
    dinâmica (feita durante a execução)
    – Vantagem: flexibilidade (o tamanho de uma matriz
    não precisa ser conhecido antes da sua utilização)
    • Matriz Dinâmica no Monte
    – A vinculação das faixas dos índices e a alocação
    são dinâmicas e podem mudar várias vezes
    – Vantagem: flexibilidade (matrizes podem crescer
    ou encolher durante a execução do programa)

    Fonte:http://www.cin.ufpe.br/~arfs/aula05_tiposDeDados_parte2.pdf
  • Aqui fala neste link:

    http://www.google.com.br/url?sa=t&source=web&cd=1&ved=0CBgQFjAA&url=http%3A%2F%2Fwww.tiagodemelo.info%2Faulas%2Fcefet%2F2008%2Flinguagem-poo%2Faula-topicos-linguagem-programacao.pdf&ei=skG_TejvDqbs0gHJ5LXwBQ&usg=AFQjCNGYML_mNWsKY99ZntNOOqcJZFldQwPolimorfismo–Polimorfismo ad hoc ?Não existe um modo único e sistemático de determinar o tipo de resultado de uma função em termos dos tipos dos seus argumentos de entrada.? ? –É uma forma limitada de polimorfismo.Possui duas formas: coerção e sobrecarga.Polimorfismo universal??Trabalha potencialmente num conjunto infinito de tipos de modo disciplinado.Possui duas formas: paramétrico e inclusão.
  • Monte = Heap Memory. Traduções que mais dificultam que ajudam.


ID
273352
Banca
CESPE / CEBRASPE
Órgão
FUB
Ano
2011
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue os próximos itens em relação às estruturas de dados.

No uso de estruturas de transformação de chave (hashing), a solução de colisões usando encadeamento tem como principal característica o fato de nunca transbordar. Adicionalmente, o tempo de busca na lista ligada pode ser reduzido se uma lista duplamente encadeada for utilizada.

Alternativas
Comentários
  • Uso da posição consecutiva livre:
    • Os elementos que colidem são armazenados em posições da tabela ainda não ocupadas;
    • Uma das estratégias consiste em buscar a próxima posição livre (utilizando incremento circular):

    Usa-se somente um a Lsta Encadeada
  • Se eu quiser eu posso utilizar uma lista duplamente encadeada no meu hashing. Mas isso significa aumento do gasto de memória para armezenar 1 ponteiro a mais desnecessário. O erro da questão está em dizer que "Adicionalmente, o tempo de busca na lista ligada pode ser reduzido se uma lista duplamente encadeada for utilizada." 


    A complexidade temporal para a busca de um elemento numa lista encadeada é(em termos assintóticos) a mesma se comparada com uma lista duplamente encadeada. O(n) no tamanho da lista.
  • Um método alternativo citado por Wirth é o método de endereçamento aberto. 
  • (ERRO EM VERMELHO) No uso de estruturas de transformação de chave (hashing), a solução de colisões usando encadeamento tem como principal característica o fato de nunca transbordar. Adicionalmente, o tempo de busca na lista ligada pode ser reduzido se uma lista duplamente encadeada for utilizada.

     

    ---> Tanto lista encadeada quanto lista duplamente encadeada possuem A MESMA COMPLEXIDADE, portanto o tempo não pode ser reduzido na lista duplamente encadeada.


ID
273355
Banca
CESPE / CEBRASPE
Órgão
FUB
Ano
2011
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue os próximos itens em relação às estruturas de dados.

O uso de listas encadeadas na representação de matrizes justifica-se, entre outros motivos, quando a matriz é esparsamente povoada por dados. Em uma possível implementação para esse caso, os valores dos índices de cada dimensão da matriz são armazenados em listas encadeadas, e cada elemento da matriz com valor diferente de zero é um nó (ou célula) em outra lista encadeada, acessível a partir das listas dos índices da matriz.

Alternativas
Comentários
  • Em uma possível implementação de uma matriz esparsa, utilizando o conceito de listas encadeadas, armazenamos apenas os elementos não nulos.

    Ou seja, cada nó fará parte de duas listas: uma lista da linha, e uma lista da coluna. Cada nó armazenaria, dentre outras possíveis informações, o próximo elemento na linha, e o próximo elemento na coluna.

ID
273358
Banca
CESPE / CEBRASPE
Órgão
FUB
Ano
2011
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue os próximos itens em relação às estruturas de dados.

As pilhas são listas encadeadas cujos elementos são retirados e acrescentados sempre ao final, enquanto as filas são listas encadeadas cujos elementos são retirados e acrescentados sempre no início.

Alternativas
Comentários
  • Errado

    Pilha - (LIFO - Last In First Out)

    Os elementos são inseridos e retirados sempre do topo, sendo que o último a entrar sem será o primeiro a sair.

    Fila - (FIFO - First In First Out)
    Os elementos entram por uma extremidade e saem por outra, sendo que o primeiro a entrar é o primeiro a sair.
  • Essa questão está errada do início ao fim:

    1º - Pilhas e listas não são necessariamente listas encadeadas; ambas as estruturas podem ser implementadas estaticamente com arrays.
    2º - Na fila, os elementos não são retirados e acrescentados sempre no início; um elemento é inserido por uma extremidade e removido pela outra extremidade.

    Bons estudos
  • Questão tipica da CESPE, eles adoram inverter os conceitos, olho aberto!
  • Pilha ok porém nas Filas a insesão e a remoção são feitas em extremidades opostas.

  • errado-

    Uma lista simplesmente encadeada tem 2 valores: dado e ponteiro para próximo (para anterior sefor duplamente). Stack & queue nao necessitam conter elementos que apontem o próximo


ID
276709
Banca
ESAF
Órgão
CVM
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Uma fila é um tipo de lista linear em que

Alternativas
Comentários
  • Leia: Uma fila é um tipo de lista linear em que, é uma Estrutura de Dados do tipo: FIFO (First In, First Out)

    Veja Imagem explicativa: http://dev.emcelettronica.com/files/node_images/fifo_.jpg
  • Gabarito: A.

     

    A letra B refere-se à estrutura Pilha.

  • RESOLUÇÃO:

    Assertiva correta, a final, o primeiro a entrar é o primeiro a sair, daí a questão falar em as extremidades.

    Resposta: A


ID
276712
Banca
ESAF
Órgão
CVM
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Assinale a opção correta.

Alternativas
Comentários
  • Na implementação de listas encadeadas pode ser interessante criar nós extras conhecidos como sentinelas.

    No caso das listas com cabeça e cauda temos um nó extra no início da lista (cabeça) e um nó extra no final da lista (cauda).

    Lista com cabeça:  O conteúdo da primeira célula é irrelevante ela serve apenas para marcar o início da lista. 

    Lista sem cabeça:  O conteúdo da primeira célula é tão relevante quanto o das demais. Nesse caso, a lista está vazia se o endereço de sua primeira célula é NULL.