Atividade1
Atividade1
Atividade1
Estrutura de dados I
Atividade I
Prof. Dr. Hitalo Nascimento
Instruções:
O trabalho pode ser feito em dupla, mas deve ser enviado individualmente pelo SIGAA.
Prazo para envio: 09/12/2024
Apresentações nos dias 09 e 12/2024
Enviar um único arquivo comprimido (.zip, .rar, etc), que contenha o seguintes:
O trabalho deve ser apresentado em laboratório ao Professor. Na ocasião, algumas questões serão
selecionadas, e a equipe deverá apresentar para a turma.
Obs: Receberão a nota referente ao trabalho apenas os alunos que realizarem o envio no SIGAA e
apresentarem as questões selecionadas no laboratório. Os dois integrantes da equipe devem
apresentar.
-----------------------------------------------------------------------------------------------------------------------
Parte I: Questões teóricas
1) Como uma função é definida em C? Apresente a sintaxe e exemplos de aplicação. Além disso,
explique como o conceito de recursividade é implementado em C.
2) Faça uma breve discussão sobre vetores, matrizes e estruturas (structs). Definição, como
funcionam, como são implementados, etc.
3) Se um vetor é declarado como x[] = {1,3,5,7,9}, então qual é o retorno de sizeof(arr[3])?
4) Se uma matriz for declarada como int X[5][5], quantos elementos ela pode armazenar?
5) Faça uma breve discussão sobre ponteiros e ponteiros para ponteiros (Definição, como
funcionam, como são implementados, xemplos de aplicação, etc).
6) Qual a diferença entre alocação de memória estática e dinâmica. Cite exemplos de aplicação.
8) Qual a diferença entre fila e pilha? Em termos de implementação dessas duas estruturas de dados,
o que se deve ser levado em consideração?
9) Desenhe a estrutura da fila em cada caso quando as seguintes operações forem executadas em
uma fila vazia.
10) Explique cada um dos termos a seguir (no contexto de uma fila):
(a) enqueue
(b) dequeue
(c) pop
(d) peek
11) Desenhe a estrutura da pilha em cada caso quando as seguintes operações forem executadas em
uma pilha vazia.
12) Faça um pesquisa sobre o problema da Torre de Hanói. Discuta sobre como este problema
pode ser implementado.
13) Explique cada um dos termos a seguir (no contexto de uma pilha):
(a) Pop()
(b) Push()
(c) Peek()
(d) isEmpty()
1) Escreva um programa que receba 10 valores fornecidos pelo usuário e os armazene em um vetor.
Em seguida, o programa deve retornar o somatório dos valores em questão.
4) Escreva um programa que receba 8 valores e armazene tais valores em um vetor. Em seguida o
programa deve retornar o coeficiente de variação (cv), conforme a seguinte regra:
Baixo: se cv < 0,1
Médio: se 0,1 <= cv <0,2
Alto: se 0,2 <= cv <0,3
Muito alto: se cv > 0,3
6) Escreva um programa para adicionar dois números do tipo float usando o conceito de ponteiro e
função.
7) Escreva um programa que retorne as seguinte operações para as matrizes abaixo (Se for
possível).
11) Escreva um programa em C utilizando estruturas que receba os dados de cinco alunos de
graduação e exiba as informações dos estudantes em questão:
Os dados fornecidos são: NOME, CPF, RG, MATRÍCULA, CURSO, ENDEREÇO (Rua, bairro,
número, cep, cidade e estado), data de nascimento, telefone e IRA (Índice de rendimento
Acadêmico). Após a exibição dos dados dos alunos, o programa deve retornar o desvio padrão do
IRA.
12) Resolva novamente a questão 4, mas agora a partir do conceito de alocação dinâmica de
memória.
13) Resolva novamente a questão 5, mas agora a partir do conceito de alocação dinâmica de
memória.
14) Escreva um programa em C para uma fila estática que receba 10 valores do tipo inteiro, e em
seguida, retorne:
15) Escreva um programa em C para fila estática, de forma a receber 10 valores do tipo inteiro, e
em seguida, retorne:
16) Resolva novamente a questão 15, mas agora a partir do conceito de fila dinâmica.
17) Escreva um programa em C para fila estática, de forma a receber 10 valores do tipo inteiro, e
em seguida, resolva:
18) Escreva um programa em C que implemente duas filas dinâmicas chamadas de F1 e F2, como
mesma capacidade para armazenamento de elementos do tipo inteiro. Em seguida, retornar:
• Inserir dez valores em cada fila;
• Escrever uma função que compare os conteúdos os conteúdos de F1 e F2, e informe se
algum valor está presente nas duas filas;
• Por fim, o programa deve retornar a média, a moda e o coeficiente de variação das duas
filas.
Saída esperada:
Push data 1
Push data 2
Push data 3
Push data 4
Pop data: 4
Pop data: 3
Pop data: 2
Pop data: 1
20) Escreva um programa em C para calcular o valor médio dos elementos de uma pilha dinâmica.
Saída esperada:
Elementos da pilha:
642531
Média dos valores da pilha: 3,50
Valor removido: 6
Elementos da pilha:
42531
Média dos valores da pilha: 3,00
Referências
Data Structures c Using. Reema Thareja.
Estruturas de Dados Usando C. Aaron Ai Tenenbaum, Yedidyah Langsam, Moshe J. Augenstein.
https://max.cs.kzoo.edu/cs230/Resources/C/pointerExercise.pdf