Questões de Concurso Sobre algoritmos e estrutura de dados
Foram encontradas 3.849 questões
algoritmo Teste
var vet: vetor[0..4] inteiro
var n, p, u, aux: inteiro
início
para (p de 0 até 4 passo 1) faça
leia (n)
vet[p] ← n
fim_para
p ← 0
u ← 4
aux ← 0
enquanto (u<>1) faça
enquanto (p<>u) faça
se(vet[p]>vet[p+1])
então aux ← vet[p]
vet[p] ← vet[p+1]
vet[p+1] ← aux
fim_se
p ← p+1
fim_enquanto
p ← 0
u ← u-1
fim_enquanto
fim
O pseudocódigo apresentado
é executada nas linguagens de programação seguindo a ordem de precedência dos operadores na matemática. A figura abaixo representa uma estrutura de dados que mostra a ordem das operações, que são realizadas dos elementos, desde os mais abaixo para os mais acima, em cinco níveis. 
Esse tipo de estrutura pode ser definido como um(a)
, para cada novo elemento inserido na estrutura, alocamos um espaço de memória para armazená-lo. Desta forma, o espaço total de memória gasto pela estrutura é proporcional ao número de elementos nela armazenados. No entanto, não podemos garantir que os elementos armazenados na lista ocuparão um espaço de
contíguo, portanto, não temos acesso direto aos elementos da lista. Para que seja possível percorrer todos os elementos da
, devemos explicitamente guardar o encadeamento dos elementos, o que é feito armazenando-se, junto com a informação de cada elemento, um
para o próximo elemento da
. As lacunas de I a V, são preenchidas, corretas e respectivamente, por:

As lacunas I, II e III são preenchidas correta e, respectivamente, por:
i) Métodos de pesquisa sequencial e de pesquisa binária
ii) Métodos de ordenação
Sabendo que N se refere ao número de elementos do conjunto, a alternativa em que i) e ii) estão ambas ERRADAS, é
Dados de entrada: 11, 12, 23, 14, 25, 50, 8, 18, 29, 10
As estruturas mostradas ficam
I. Pilha: (topo) 10 - 29 - 18 - 8 - 50 - 25 - 14 - 23 - 12 - 11
II. Fila: (começo) 11 - 12 - 23 - 14 - 25 - 50 - 8 - 18 - 29 - 10 (fim)
III. Fila: (começo) 10 - 29 - 18 - 8 - 50 - 25 - 14 - 23 - 12 - 11 (fim)
IV. Pilha: (topo) 11 - 12 - 23 - 14 - 25 - 50 - 8 - 18 - 29 - 10
V. A fila mostrada fica com os elementos em ordem invertida dos dados de entrada
Está correto o que se afirma APENAS em

Considerando que uma nota válida deve possuir valores entre 0 e 10 (inclusive), a lacuna que corresponde à condição do comando SE é corretamente preenchida por
início
caracter: nome, sexo;
imprima (“Qual é o seu nome? ”);
leia(nome);
imprima (“Qual é o seu sexo? (f/m) ”);
leia (sexo);
se (sexo = ‘f’ E sexo = ‘F’)
então imprima (“Você é do sexo feminino. ”);
senão
se (sexo = ‘m’ E sexo = ‘M’)
então imprima (“Você é do sexo masculino. ”);
senão
imprima (“Você digitou um valor de sexo invalido ”);
fim se;
fim se;
fim.
Sobre o algoritmo acima é correto afirmar que
I. Considere o método de ordenação que implementa o seguinte processo: uma coleção desordenada de n elementos é dividida em duas metades e cada metade é utilizada como argumento para a reaplicação recursiva da subrotina. Os resultados das duas reaplicações são, então, combinados pela intercalação dos elementos de ambas, resultando em uma coleção ordenada. A complexidade do caso médio desse algoritmo é expressa por O(n log2 n).
II. Existem aplicações para listas lineares nas quais inserções, retiradas e acessos a itens ocorrem sempre em um dos extremos da lista. Nestes casos a estrutura adequada para resolvê-los é a pilha ou stack.
III. No método Quicksort, o pivô é responsável pelo número de partições em que o vetor é dividido. Como o pivô não pode ser um elemento que esteja repetido no vetor, o Quicksort não funciona quando há elementos repetidos.
Está correto o que se afirma em
50, 20, 15, 40, 5, 62, 55, 110, 80, 72, 75 e 76
os nós folha da ABB resultante são
os itens subsecutivos.
os itens subsecutivos.



O método concat() irá produzir uma pilha na qual o elemento que estará no seu topo será o topo da pilha s1. Além disso, o elemento no topo de s2 ficará imediatamente abaixo da base de s1. A Figura a seguir exibe a pilha produzida pelo método concat() a partir das pilhas s1 e s2:

Qual implementação do método concat() produz o resultado descrito acima?
Uma função recursiva, cujo cabeçalho é boolean busca (int val), foi escrita com o objetivo de visitar os nós desse tipo de árvore à procura de um determinado valor (val). O algoritmo utilizado tira partido das características de uma árvore rubro-negra, com o objetivo de ser o mais eficiente possível.
Qual é o número máximo de chamadas à função busca( ) que será necessário para informar se um determinado valor está, ou não, armazenado na árvore?