Buscar

provas av

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

1. 
 
 
Em uma lista duplamente encadeada, seus nodos são compostos por campos cujos tipos 
podem ser de diferentes naturezas, entretanto dois de seus campos devem ser ponteiros 
para o mesmo tipo do nodo, são estes os ponteiros ant e prox, que apontam respectivamente 
para o nodo anterior e para o próximo nodo. Esta característica permite que a estrutura seja 
percorrida em ambos os sentidos. Assim analisando as operações a seguir: 
p->ant->prox=p->prox; 
p->prox->ant=p->ant; 
 
 Sendo p um ponteiro que aponta para um dos nodos da lista, pode-se afirmar que: 
 
 
As operações possibilitam o percurso do ponteiro p da direita para esquerda. 
 
As operações possibilitam o percurso do ponteiro p da esquerda para direita. 
 
As operações inserem novo nodo, após o nodo apontado pelo ponteiro p. 
 
As operações removem o nodo apontado pelo ponteiro p. 
 
As operações possibilitam a busca de um nodo apontado pelo ponteiro p. 
 
 
 
2. 
 
 
Observe a struct, definida globalmente, e um trecho de uma função 
que manipula uma Lista Duplamente Encadeada. 
struct listaDE 
{ 
 int info; 
 struct listaDE* ant; 
 struct listaDE* prox; 
}; 
... 
listaDE* novo = new listaDE; 
novo->info = valor; 
novo->prox = LISTA; 
novo->ant = NULL; 
Assinale a alternativa que apresenta o protótipo dessa função 
 
 
listaDE *remove(listaDE *LISTA, int valor); 
 
listaDE *insereInicio(listaDE *LISTA, int valor); 
 
void exibeIpF(listaDE *LISTA); 
 
listaDE *busca (listaDE *LISTA, int valor); 
 
listaDE *insereFim(listaDE *LISTA, int valor); 
 
 Gabarito Comentado 
 
 
3. 
 
 
Em uma lista linear duplamente encadeada. 
 
 
Além do campo relativo ao dado, cada nó possui dois ponteiros. 
 
Cada ponteiro possui um só endereço que referencia o primeiro nó da lista. 
 
O ponteiro do "primeiro" nó não é NULL, mas sim aponta de volta para o "primeiro" nó da lista, 
formando um ciclo. 
 
O ponteiro do "último" nó não é NULL, mas sim aponta de volta para o "primeiro" nó da lista. 
 
Cada nó possui um só ponteiro que referencia o próximo nó da lista. 
 
 Gabarito Comentado 
 
 
4. 
 
 
 Suponha uma listagem mantida com informações sobre um equipamento a 
ser adquirido por uma empresa. A listagem possui as informações sobre de 
10 fornecedores, descritas a seguir: 
próximo: um ponteiro para o próximo fornecedor da listagem; 
nome: nome, identificando o fornecedor; 
valor: preço do equipamento no fornecedor; 
anterior: um ponteiro para o fornecedor anterior da listagem. 
Sendo o fornecedor "Z" o quinto elemento desta listagem e "X" e "Y" dois 
outros fornecedores que não pertencem à listagem, com seus respectivos 
ponteiros "pZ", "pX" e "pY", considere o trecho de código abaixo. 
pY->proximo = pX; 
pX->anterior = pY; 
pX->proximo = pZ->proximo; 
pZ->proximo->anterior = pX; 
pZ->proximo = pY; 
pY->anterior = pZ; 
Este trecho de código é usado para inserir na listagem os fornecedores: 
 
 
X, logo após o Z, e Y, logo após o X. 
 
Y, antes do Z, e X, antes do Y. 
 
X, antes do Z, e Y, logo após o Z. 
 
Y, antes do Z, e X, logo após o Z. 
 
Y, logo após o Z, e X, logo após o Y. 
 
 Gabarito Comentado 
 
 
5. 
 
 
Uma estrutura de dados em lista duplamente encadeada permite na cadeia movimentos para: 
 
 
frente, apenas. 
 
trás, apenas. 
 
cima e para baixo, apenas. 
 
frente e para trás, apenas. 
 
cima e para baixo ou para frente e para trás. 
 
 Gabarito Comentado 
 
 
6. 
 
 
Com relação à lista duplamente encadeada, é correto afirmar que : 
 
 
Não pode haver remoções no meio da lista. 
 
Consome menos memória do que uma lista simplesmente 
encadeada, se tivermos uma mesma aplicação. 
 
Não pode ser vazia. 
 A lista precisa ter sempre um ponteiro apontando para o 1º. nó 
 
A lista pode ser percorrida com igual facilidade para a direita ou 
para a esquerda, pois existem dois ponteiros. 
 
 Gabarito Comentado 
 
 
7. 
 
 
Em uma lista duplamente encadeada, seus nodos são compostos por campos cujos tipos podem ser de 
diferentes naturezas, entretanto dois de seus campos devem ser ponteiros para o mesmo tipo do 
nodo, são estes os ponteiros ant e prox, que apontam, respectivamente, para o nodo anterior e para o 
próximo nodo. Esta característica permite que a estrutura seja percorrida em ambos os sentidos. 
Assim analisando as operações a seguir: 
 
p->ant->prox=p->prox; 
p->prox->ant=p->ant; 
 
Sendo p um ponteiro que aponta para um dos nodos da lista, pode-se afirmar que: 
 
 
As operações inserem novo nodo, após o nodo apontado pelo ponteiro p. 
 
As operações removem o nodo apontado pelo ponteiro p. 
 
As operações possibilitam a busca de um nodo apontado pelo ponteiro p. 
 
As operações possibilitam o percurso do ponteiro p da esquerda para direita. 
 
As operações possibilitam o percurso do ponteiro p da direita para esquerda. 
 
 Gabarito Comentado 
 
 
8. 
 
 
Os registros também conhecidos como estruturas, são estruturas de dados do tipo heterogêneo, ou 
seja, permitem que valores de tipos diferentes possam ser armazenados em uma mesma estrutura. 
Analisando a estrutura abaixo, a mesma pode ser utilizada para qual tipo de estrutura de dados, 
marque a alternativa correta. 
struct nomeRegistro{ 
 int info; 
 struct nomeRegistro* ant; 
 struct nomeRegistro* prox; 
}; 
typedef struct nomeRegistro NOMEREGISTRO; 
 
 
Pilha 
 
Fila 
 
Lista encadeada 
 
Lista duplamente encadeada 
 
Matriz

Outros materiais