Questões de Concurso Sobre algoritmos e estrutura de dados
Foram encontradas 3.124 questões
Uma vantagem do arquivo direto é poder determinar funções que gerem menor número de colisões.
Listas generalizadas são estruturas de dados flexíveis que podem representar qualquer tipo de lista linear, mas não árvores em diferentes graus.
A estrutura de uma lista encadeada mantém uma coleção de itens em ordem linear, sem, no entanto, exigir que eles ocupem posições consecutivas na memória
A implementação de lista por meio de apontadores permite utilizar posições não contíguas de memória, de modo a se poder inserir e retirar elementos sem que haja necessidade de deslocar os itens seguintes da lista.
Se P for uma pilha de dados, então a operação Top(P)retornará e removerá o item que estiver no topo da pilha.
Comumente usados em fluxogramas representativos de sistemas, os símbolos abaixo correspondem, respectivamente, a dados armazenados, processo, documento e entrada manual.
O pseudocódigo a seguir lê um número não negativo e mostra na tela o seu fatorial.
Considere a situação a seguir.
Um programa tem de correlacionar os nomes Ana, Maria e Simone aos sobrenomes Costa, Oliveira e Santos, não necessariamente nessa ordem. A mulher de sobrenome Costa, que não é Ana, tem mais idade do que Simone, e a mulher de sobrenome Santos tem o dobro da idade das outras duas.Nessa situação, se uma lógica de programação for executada de forma adequada, os sobrenomes corretos de Ana, Maria e Simone serão, respectivamente, Oliveira, Costa e Santos.
Considerando a árvore mostrada, em que o nodo A é a raiz da árvore, a visita aos nodos feita em pré-ordem resultará na seguinte sequência: ABDEFCG.
1. Escolha um elemento que será chamado o pivot da lista.
2. Reordene a lista de tal forma que os elementos menores que o pivot venham antes dele e os elementos maiores ou iguais ao pivot venham depois dele. Essa operação é chamada de partição, e cria duas sublistas:
a. a de menores que o pivot e
b. a de maiores ou iguais ao pivot.
3. Aplique recursivamente os passos 1 e 2 às sublistas de menores e maiores que o pivot.
O algoritmo acima corresponde ao
Inicio IniciaPilha(P); num=0 total=0 Enquanto (num <> -1) Le_teclado(num) Se (Vazia(P) ou Topo(P)<num) Push(P,num) Senao total <- total+Pop(P) Fim_se Fim_Enquanto Fim
Se o programa for executado com uma sequência de entrada (fornecida pelo teclado) igual a 3, 5, 6, 8, 10, 7, 9, 6, 1, -1 (começando pelo 3), ao final da execução, a pilha conterá (da base para o topo) os valores
Início
Leia a, b, c;
x ← 0;
Para i de 1 até 9 passo 2 faça
[
Se ((a mod 2) = 0)
Então x ← x + 2*b;
Senão x ← x - c;
a ← a - 1
]
Imprima x
Fim
Ao final do algoritmo, o valor impresso da variável x foi:
Início
Leia a, b, c;
x ← 0;
Para i de 1 até 9 passo 2 faça
[
Se ((a mod 2) = 0)
Então x ← x + 2*b;
Senão x ← x - c;
a ← a - 1
]
Imprima x
Fim
Para o algoritmo apresentado, assinale a alternativa que contém o número de vezes que o comando.
Então x ← x + 2*b;
foi executado, considerando os valores lidos para as variáveis de entrada.
Considere que o programador, por engano, inseriu um defeito na linha 300, escrevendo-a como enquanto (x <= y) em vez de enquanto (x < y) . O par de valores (x, y) que revelaria a presença do defeito é:
Caso o critério, de teste cobertura de comandos seja empregado, o par de valores (x, y), se for usado como dado de entrada para a função processa, que resultaria em 100% de cobertura desse critério :
A função retorna a posição da chave k em V, ou -1 se não for encontrada.
O símbolo *** denota uma expressão lógica propositalmente omitida.
define buscabinaria(k)
p=1
u=N
repeat
x=(p+u)\2
if k < V[x]
then u = x-1
else p = x+1
until ***
if k = V[x]
then return(x)
else return(-1)
Assinale a opção que apresenta o trecho que deve substituir o símbolo *** para que o algoritmo acima funcione de acordo com a especificação.
Supondo que os três operam em condições semelhantes e satisfatórias, com os registros armazenados num disco rígido, assinale a opção que mostra as alternativas na ordem do menor para o maior tempo de busca