Questões de Concurso Sobre algoritmos e estrutura de dados
Foram encontradas 3.833 questões
Considere os seguintes trechos de algoritmos de ordenação:

Estes trechos se referem, respectivamente, aos métodos de ordenação
I. Estrutura de dados que possui uma sequência de células, na qual cada célula contém um objeto de algum tipo e o endereço da célula seguinte.
II. Podem ser orientados, regulares, completos e bipartidos e possuir ordem, adjacência e grau.
III. Possuem o método de varredura esquerda-raiz-direita (e-r-d).
Os itens de I a III descrevem, respectivamente,
No que se refere às linguagens de programação, julgue o item subsecutivo.
A execução da função x descrita abaixo para o valor n igual a 8 fornecerá 21 como resultado.
long x(int n){
if (n<0) return -1;
if (n==0) return 0;
if (n==1) return 1;
return x(n-1) + x(n-2);
}
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
Os valores sim, não, falso e verdadeiro são considerados constantes lógicas.
As duas operações básicas de uma fila são o empilhamento e o desempilhamento, também denominadas, respectivamente, PUSH e POP.
O método quicksort é semelhante ao bubble sort, pois opera comparando cada elemento de um vetor com seu sucessor e, caso este esteja fora de ordem, o quicksort auxilia a troca da posição. Dessa forma, em ambos os métodos, é grande o número de comparações e trocas para execução de vetores extensos.

Seria um bom exemplo para explicar em sala de aula o conceito em programação de:

Assinale abaixo, o aluno com a resposta tecnicamente correta :

No grafo acima, cada vértice representa uma cidade, e os números nas arestas representam a distância, em quilômetros, entre as cidades. Considerando o menor caminho entre as cidades A e K, assinale a opção que apresenta apenas cidades que fazem parte desse menor caminho.

Assinale a opção que apresenta o correto caminhamento pós-fixado na árvore binária acima.
Na árvore binária representada abaixo, o caminhamento pós-fixado produzirá a seguinte sequência de nós visitados: D, B, E, A, C, F.

Considere um vetor C com valores entre 0 e 999, em que cada elemento do vetor é dividido em três partes (unidade, dezena e centena). Nesse caso, o método de classificação por distribuição de chave, aplicado sobre C, realizará a ordenação dos valores pela execução de sucessivos passos, tomando-se em cada passo apenas uma parte do elemento.
As árvores apresentadas abaixo são ditas equivalentes.
Considere tnode um nó de uma lista encadeada e a função monta_lista listados abaixo. Nesse caso, a utilização da função monta_lista criará uma lista encadeada com as informações ordenadas em ordem decrescente alfabeticamente e o ponteiro topo apontará para o nó com a maior informação alfabética.
Autômatos finitos são usualmente apresentados na forma de um grafo dirigido. A figura abaixo representa uma transição que pode ocorrer se o autômato estiver em um estado Si e se o símbolo da string de entrada for a. Caso a entrada para o autômato seja a string prova, é correto afirmar que ocorrerá a transição de Si para Sf .
O diagrama de blocos apresentado abaixo se refere à instrução faça < conjunto de instruções > enquanto < condição >.
A execução da função x descrita abaixo para o valor n igual a 8 fornecerá 21 como resultado.
long x(int n) {
if (n<0) return -1; if (n==0) return 0;
if (n==1) return 1;
return x(n-1) + x(n-2);
}