Estrutura De Dados - Perguntas
Dissertações: Estrutura De Dados - Perguntas. Pesquise 861.000+ trabalhos acadêmicosPor: Lud_182 • 29/10/2013 • 1.459 Palavras (6 Páginas) • 409 Visualizações
1) Implementar um TAD referente à lista ordenada, usando alocação dinâmica simplesmente encadeada.
a) A estrutura de dados é dada a seguir:
struct no{
int info;
Struct no* prox;
};
typedef struct no Lista;
b) Operações que o TAD deve contemplar:
. Inicializar a lista
. Verificar se lista é vazia
. Inserir um dado elemento
. Remover um dado elemento
. Tamanho: retorna o número de elementos da lista
. Iguais: recebe duas listas ordenadas e verifica se elas são iguais
. Média: retorna a média aritmética simples dos elementos da lista
. Busca: verifica se um dado valor é pertencente à lista
. Elimina: elimina todas as ocorrências de um dado elemento
. Elimina_ : elimina um elemento que está em uma dada posição definida pelo usuário
Obs.: É importante verificar se a posição é válida.
. Insere na direita: insere um dado valor à direita do -ésimo elemento da lista
Obs.: É importante verificar se a posição é válida.
. Insere na esquerda: insere um dado valor à esquerda do -ésimo elemento da lista
Obs.: É importante verificar se a posição é válida.
2) Dado duas listas dinâmicas simplesmente encadeadas (com a mesma estrutura do item 1) com ordenação,L1 e L2, crie um algoritmo que irá gerar uma terceira lista com as seguintes características:
. Inverter: recebe uma lista, L1 ou L2, e retorna uma nova lista L3, formada pelos elementos da lista recebida na ordem inversa.
. Retornar ímpares: recebe as listas L1 e L2 e retorna uma nova lista L3, formada apenas com os elementos ímpares das duas listas.
. Concatena: recebe as listas L1 e L2 e retorna uma nova lista L3 formada pela concatenação entre a lista L1 e L2.
. Conjunto intersecção: gerar uma terceira lista com a intersecção entre os números da primeira e da segunda lista.
. Intercalar: a função recebe as duas listas ordenadas e retorna a lista com os elementos das duas listas intercalados conforme a ordem com que elas se dispõe na lista, segundo exemplificado abaixo.
. Intercalar ordenadamente: o módulo recebe as duas listas ordenadas e retorna a lista com os elementos das duas listas intercalados, porém obedecendo a ordem crescente dos números.
3) Dada uma lista encadeada que armazena números inteiros, escreva uma função que transforma a lista dada em duas listas encadeadas: a primeira contendo os elementos cujo conteúdo é par e a segunda contendo os elementos com conteúdos impares. Sua função deve manipular somente os apontadores e não o conteúdo das células. Exemplo:
4) Implementar o TAD lista não ordenada usando alocação dinâmica com encadeamento CÍCLICO.
A estrutura de dados é dada abaixo:
typedef struct data{
char nome[30];
float CRA;
int matricula;
} DATA;
struct no{
DATA info;
Struct no* prox;
};
typedef struct no Lista;
Operações que o TAD deve contemplar:
. Inicializar lista
. Verificar lista vazia
. Inserir novo elemento no final da lista
. Remover um dado elemento do início da lista
. Inserir em uma dada posição: insira o elemento de entrada em uma posição definida pela na entrada.
Obs.: É importante verificar se a posição é valida.
. Remove elemento de uma dada posição: remover o elemento que se encontra na posição especificada na entrada.
Obs.: Se a posição não existir na lista, retorne mensagem de falha na tela.
. Tamanho: retorna o número de elementos da lista
. Maior: retorna o valor do maior CRA da lista.
. Remover todos os alunos cujo nome começa com a letra A.
5) Implementar o TAD lista ordenada usando alocação dinâmica com encadeamento duplo. Adapte a estrutura do item 4 para este problema.
Operações que o TAD deve contemplar:
. Inicializar lista;
. Verificar lista vazia;
. Inserir um novo nodo na lista;
. Remover um nodo que contenha um dado nome;
.
...