• Nenhum resultado encontrado

ListadeExercícios01 Arquivos de BSI e LIC Professor.Rodrigo.Neves

N/A
N/A
Protected

Academic year: 2018

Share "ListadeExercícios01 Arquivos de BSI e LIC Professor.Rodrigo.Neves"

Copied!
2
0
0

Texto

(1)

FIC/ Cu rs o d e B S I e LIC 2 0 10 – 2 º

P ro fe s s o r: Ro d rigo N e ve s Figu e ire d o d o s S a n to s

Lis ta d e Exe rcício s 1 - P o n te iro s e Lis ta s

1) Escreva um programa que gere um vetor de três dimensões (X, Y e Z) em que cada posição guarda a soma de suas coordenadas. As dimensões da matriz deverão ser determinadas em tempo de execução e o programa deverá informar os valores gerados.

2) Escreva um programa que simule uma pilha usando vetores. O programa deve implementar as seguintes operações na pilha:

a) Inserir b) Remover c) Listar

3) Faça um programa usando ponteiros que leia 5 números, e os ordene, mostrando eles ordenados na tela. Não precisa salvar na lista.

4) Escreva um programa que declare uma matriz 100x100 de inteiros com ponteiros (Use um ponteiro do registro com os campos valor, linha e coluna). Você deve inicializar a matriz com zeros usando ponteiros para endereçar seus elementos. Preencha depois a matriz com os números de 1 a 10000, também usando ponteiros.

5) Dadas duas listas gerais simplesmente encadeadas X e Y, concatená-las formando uma única lista Z, usando:

a) listas lineares (ou seja, usando vetores); b) listas encadeadas por ponteiros.

6) Dadas uma fila simplesmente encadeada f e uma pilha encadeada p, ler uma série de números e: a) se o número lido for positivo, inseri-lo na fila;

b) se o número lido for negativo, inseri-lo na pilha;

c) se o número lido for nulo, retirar um número (se houver) de cada lista e imprimi-lo.

Terminar o algoritmo quando for lido o número 999.

7) Na classe que implementa uma lista duplamente encadeada, inserir métodos que: a) inserir um novo nó na k-ésima posição da lista duplamente encadeada; b) remover o nó que contém uma determinada informação lida de entrada.

8) Faça a seguinte implementação: crie um objeto List (implementação de lista simplesmente encadeada), depois ler 10 números inteiros digitados pelo usuário e inserir na lista se estes números forem negativos, na ordem em que aparecer.

9) Crie uma lista encadeada de empregados. Ela deve conter nome, endereço e salário como atributos, um método para imprimir os atributos, métodos para atualizar e efetuar buscas de informações contidas nestes atributos, tudo em um menu.

10) Teste a lista do exercício anterior da seguinte maneira:

Declare um objeto empregado com o nome de e. Em seguida, instancie e insira os seguintes objetos na lista:

(2)

◦ Empregado("Manuel Pereira","Rua 7", 2000.0) ◦ Empregado("Fernanda Alves","Rua Nova", 1800.0) ◦ Empregado("Maria Machado","Av. Caxangá", 3000.0)

Depois de inserção dos objetos acima faça uma busca por "Manuel Pereira".

11) Considere um conjunto de informações relativas a alunos, constituído de nome, número de matrícula e data de nascimento. Organize estas informações em uma lista encadeada, ordenada pelo nome do aluno. Escreva funções que efetuem as seguintes ações:

• imprimir os nomes e números de matrícula dos alunos que nasceram após uma determi-nada data (passada como parâmetro);

• procurar as informações relativas a um determinado aluno, cujo número de matrícula é passado como parâmetro;

• incluir um novo aluno na lista, respeitando a ordenação.

12) Construa um procedimento que recebe uma lista encadeada (endereço inicial no apontador Lista) e monta uma nova lista a partir dos dados desta, com os elementos em ordem inversa. Somente a lista final deve estar alocada ao final da execução do procedimento.

13) Escreva um procedimento que recebe duas filas, que contém valores numéricos ordenados. O procedimento deverá formar uma terceira fila, também ordenada, na qual estarão os valores armazenados nas filas originais. As filas deverão ser implementadas através de apontadores.

14) Dado uma pilha com números inteiros, faça as operações PUSH e POP necessárias para que se retire um número qualquer da pilha, mantendo, no final, os demais números na pilha. Escolha a estrutura auxiliar mais conveniente para a solução.

Desafio (O problema das panquecas):

Suponha que temos, por exemplo, a seqüência de números

8 2 3 5 1 4 9 7 6 0

Imagine que esta seqüência indica uma pilha de panquecas de 10 tamanhos distintos, empilhadas de forma que a menor está no fundo da pilha, a maior é a quarta panqueca a partir do fundo da pilha, a segunda maior está no topo, etc. As únicas operações permitidas são inverter um segmento inicial desta seqüência. Portanto, existem 9 operações não-triviais para a pilha acima; uma delas produz, por exemplo,

5 3 2 8 1 4 9 7 6 0

Podemos chamar esta operação deste exemplo de ‘operação número 4’, já que invertemos a ordem das 4 panquecas do topo. O problema é o seguinte: dados um inteiro positivo n e uma permutação dos inteiros não-negativos menores do que n, determinar uma seqüência de operações (permitidas) que resultam na seqüência

0 1 2 ... n - 1

Referências

Documentos relacionados