Logo Passei Direto
Buscar

aula 01 - apresentação

Ementa/plano de disciplina sobre Estruturas de Dados: aborda estruturas heterogêneas, ponteiros e structs em C, modularização, listas/pilhas/filas, ordenação (bolha/inserção/seleção) e árvores; inclui objetivos, temas de aprendizagem, critérios de avaliação, bibliografia e datas.

Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Estrutura 
de dados 
em C
A U L A 0 1 –
A P R E S E N T A Ç Ã O
P R O F ª O T I L I A
2
Ementa
• Estruturas de dados heterogêneas. 
• Modularização. 
• Listas, Pilhas e filas. 
• Ordenação. 
• Árvores.
3
Objetivos
• Aplicar o uso de agregados heterogêneos e alocação dinâmica, baseando-se em conceitos de 
gerenciamento de memória, para propiciar melhor organização do código e permitindo maior 
manutenabilidade.
• Aplicar a passagem por referência de parâmetros, através de apontadores de endereços das 
informações, com o objetivo de manipular dados de forma mais precisa e diversificada.
• Construir códigos modularizados, utilizando fundamentos de tipos abstratos de dados, para 
desenvolver programas que encapsulem informações, simplifiquem métodos já criados e 
melhorem a legibilidade e manutenção.
• Diferenciar os tipos de problemas, em função dos requisitos e da solução a ser apresentada, 
para definir qual a melhor estrutura de dados a ser utilizada. 
• Executar algoritmos de busca e ordenação, desenvolvidos a partir de modelos e exemplos 
propostos, a fim de criar códigos capazes de pesquisar e ordenar dados através de métricas 
estabelecidas..
4
Temas de Aprendizagem
1. Estruturas de dados heterogêneas
1. Ponteiros com a utilização da linguagem de programação c
2. Estrutura de dados heterogênea
3. Structs com a utilização da linguagem de programação c
4. Estruturas de dados aninhadas, os vetores de estruturas e a instrução 
typedef usando a linguagem de programação c
5
Temas de Aprendizagem
2. Modularização
1. Conceitos gerais de procedimentos e funções
2. Tipos de funções predefinidas na linguagem c
3. Passagem de parâmetros por valor e por referência
4. Escopo das variáveis locais e globais
6
Temas de Aprendizagem
3. Listas, pilhas e filas (crédito digital)
1. principais conceitos envolvidos na manipulação de dados na memória
2. Contrastação da forma de manipulação por encadeamento da manipulação 
com estruturas sequenciais
3. Algoritmos das principais operações, 
baseados na linguagem C, e as características 
peculiares de pilhas
4. Algoritmos das principais operações, 
baseados na linguagem C, e as características 
peculiares de filas
7
Temas de aprendizagem
4. Ordenação
1. Conceitos fundamentais de ordenação para aplicação de métricas de 
classificação e escolha adequada do método na resolução de problemas
2. Algoritmos de ordenação da bolha, 
inserção e seleção para desenvolvimento 
de solução rápida e eficiente para 
implementação em linguagem C
8
Temas de aprendizagem
5. Árvores
1. Principais conceitos, as propriedades básicas e os termos relativos à árvore
2. Árvores binárias, suas particularidades 
e aplicações
3. Principais árvores de pesquisa, suas 
particularidades e aplicações
9
Procedimentos de avaliação
10
• AV1 - Contemplará os temas abordados na disciplina até a sua realização e será assim composta:
• Prova individual com valor total de 7 (sete) pontos;
• Atividades acadêmicas avaliativas com valor total de 3 (três) pontos, assim distribuídos:
• Realização de quiz avaliativo sobre os temas 1 e 2, vinculados ao conteúdo digital, com valor total de 3 (três) pontos, 
acompanhados pelo professor da disciplina.
A soma de todos os instrumentos que possam vir a compor o grau final da AV1 não poderá ultrapassar o grau máximo de 10 
(dez) pontos.
• AV2 - Contemplará todos os temas abordados pela disciplina e será composta por uma prova teórica no 
formato PNI - Prova Nacional Integrada, no seguinte formato: PNI de 0 a 5,0. As demais atividades 
acadêmicas avaliativas devem somar 5 (cinco) pontos. Para esta disciplina consiste no desenvolvimento de 
alguns programas simples envolvendo a contatação da forma de manipulação por encadeamento da 
manipulação com estruturas sequenciais e está definida na aula 10.
• AVD - Avaliação digital do(s) tema(s) / tópico(s) vinculado(s) ao crédito digital no valor total de 10 (dez) 
pontos ou AVDs - Avaliação digital do(s) tema(s) / tópico(s) vinculado(s) ao crédito digital no valor total 
de 10 (dez) pontos.
• AV3 - Contemplará todos os temas abordados pela disciplina. Será composta por uma prova no formato 
PNI - Prova Nacional Integrada, com total de 10 pontos, substituirá a AV1 ou AV2 e não poderá ser 
utilizada como prova substituta para a AVD.
11
Bibliografia Básica
12
• ASCENCIO, A.F.G., ARAUJO, G.S. Estrutura de Dados: Algoritmos, 
Análise da Complexidade e implementações em Java e C/C++. 1ª Ed. 
São Paulo: Pearson Prentice Hall, 2010. 
Disponível em: https://plataforma.bvirtual.com.br/Acervo/Publicacao/1995
• BALIEIRO, Ricardo. Estrutura de dados. 1ª Ed. Rio de Janeiro: SESES, 
2015. Disponível em: 
http://repositorio.novatech.net.br/site/index.html#/objeto/detalhes/2D35A184-BF64-4419-9DA9-D1ED12A97017
• VETORAZZO, Adriano S, et al. Estrutura de Dados. Porto Alegre: 
Sagah, 2018. Disponível em: 
https://integrada.minhabiblioteca.com.br/#/books/9788595023932/cfi/0!/4/2@100:0.00
13
https://plataforma.bvirtual.com.br/Acervo/Publicacao/1995
http://repositorio.novatech.net.br/site/index.html#/objeto/detalhes/2D35A184-BF64-4419-9DA9-D1ED12A97017
https://integrada.minhabiblioteca.com.br/#/books/9788595023932/cfi/0!/4/2@100:0.00
14
Datas Importantes
• AV1 – 19/04
• AV2 – 07/06
• AV3 – 27/06
• AVD – 26/05 à 11/06
• AVDs – 16/06 à 24/06
Estrutura de Dados em C
AU L A 0 1 – P ONT E I R OS C OM A U T I L I Z A Ç ÃO 
D A L I N G UA G EM D E P R O G R AMA ÇÃO C
P R O F ª O T I L I A
15
Objetivos
• Introduzir os conceitos de estruturas de dados, utilizando as 
linguagens C e C++ para ensinar a melhor aplicação de algoritmos, 
além de apresentar a motivação e construção de agregados 
heterogêneos.
16
Situação-Problema
Imagine que seria preciso criar algoritmos específicos para 
1) Manipular um conjunto de fichas de um fichário; 
2) Organizar as pessoas que querem ser atendidas num guichê; 
3) Organizar um conjunto de pratos que estão sendo lavados, um a um; e 
4) Visualizar o conjunto de pessoas que trabalham em uma empresa, tendo em conta sua função. 
Qual seria a melhor solução para realizar operações em cada uma destas situações?
Estrutura de Dados
• Programa = Algoritmo + Dados
• Resolução de Problema: abstração
• Cadastro de Clientes
• Quais dados são importantes?
• A idade do cliente é importante?
• A cor do cabelo do cliente é importante?
• Qual o algoritmo usar?
• Como encontrar um cliente?
• Como inserir um novo cliente?
17
Estrutura de Dados
• O que é um “dado digital”?
• O que o diferencia de “lixo digital”?
• Sua organização
• Sabemos como encontrá-los
• E isso permite...
• Busca
• Remoção
• Inserção...
• Organização → Desempenho
18
No Dia-a-dia
19
Estrutura de dados no dia-a-dia
• Representar a organização de uma empresa
• 1 presidente, 1 vice-presidente, 1 diretor de vendas e 1 de criação, este último 
com 2 subdiretores?
20
Árvore 
(hierarquia!)
Presidente
Vice-
Presidente
Diretor de 
Vendas
Diretor de 
criação
Subdiretor 1 Subdiretor2
Estrutura de dados no dia-a-dia
• Como representar a bibliografia do curso?
• ASCENCIO, A.F.G., ARAUJO, G.S. Estrutura de Dados: Algoritmos, Análise 
da Complexidade e implementações em Java e C/C++. 1ª Ed. São Paulo: 
Pearson Prentice Hall, 2010. 
• BALIEIRO, Ricardo. Estrutura de dados. 1ª Ed. Rio de Janeiro: SESES, 2015. 
• VETORAZZO, Adriano S, et al. Estrutura de Dados. Porto Alegre: Sagah, 
2018.
21
LISTA
Estrutura de dados no dia-a-dia
• Como o motoboy organiza as pizzas?
22
Pilha
Estrutura de dados no Dia-a-dia
• Como as pessoas esperam no banco?
23
Fila
Estrutura de dados no Dia-a-dia
• Como representar os trajetos possíveis em uma companhia aérea?
24
Grafo
Tipos de 
estrutura de 
dados
25
Tipos de Estrutura de Dados
• Lineares x Não-lineares
• Lineares
26
• 1º elemento bem definido
• Último elemento bem definido
• Elementos intermediários: um antecessor e um sucessor
Tiposde Estrutura de Dados
• Não-lineares
27
• Árvore: relação hierárquica
• Grafo: relação qualquer
Presidente
Vice-
Presidente
Diretor de 
Vendas
Diretor de 
criação
Subdiretor 1 Subdiretor2
É fundamental 
identificar a melhor
estrutura para cada 
problema!!!
Formas de 
armazenamento de 
manipulação de 
estrutura de dados
28
Armazenamento de Estruturas
• Duas maneiras de armazenar
• Sequencial (ou contígua)
• Espaço pré-alocado
• Tamanho pré-definido
• Encadeada (ou ligada)
• Tamanho inicialmente desconhecido
• Alocação à medida da necessidade
29
Armazenamento de Estruturas
• Iniciaremos com as sequenciais...
• Qual o tipo de variável de C/C++ que serve para guardar, 
sequencialmente, muitos dados iguais?
• Vetores
• Vamos começar com uma lista de números
• Que operações vocês conseguem imaginar?
• O que gostaríamos de poder fazer com uma lista?
30
Manipulação de Estruturas
• Imagine uma lista de notas
• Inicialmente vazia
• Inserir notas
• Remover notas
• Buscar notas...
• Como realizar essas tarefas?
• Existiria muita diferença se tivéssemos uma lista de alunos? Ou uma lista 
de rendimentos?
31
Manipulação de Estruturas
• Inserir, Remover e Buscar serão semelhantes para qualquer lista
• Sempre que precisarmos inserir, o código é o mesmo
• Que tal criarmos um algoritmo chamado inserir, por exemplo?
• Sempre que precisarmos inserir um valor, bastará solicitar que o computador 
execute o algoritmo inserir
32
Manipulação de Estruturas
• Esses “algoritmos” com nome recebem o nome de funções
• Antes de estudarmos as estruturas em si...
• Vamos aprender a implementar funções!
33
Funções
34
Funções 
• Funções pré-definidas
• abs(x)
• O que fazer se a função abs(x) não existisse?
35
C++
C
Funções
• abs “na raça”:
• Se tivéssemos de usar isso toda hora...?
• O que fazer?
• Copiar e colar?
36
Que tal criar 
nosso próprio 
abs?
Criando nossas 
próprias 
funções
37
Criando funções
• Passo 1: criar um programa que calcule o perímetro de um círculo de 
raio 2
• P = 2∙Π∙R
• Π = 3,141592
• Passo 2: transformar o cálculo em uma função chamada calcula
• As variáveis criadas dentro da função só existem dentro desta função
• Elas são chamadas variáveis locais
• Não é possível acessar uma variável local a não ser de dentro da própria 
função
• Os valores das variáveis locais são destruídos quando a função finaliza
38
Criando Funções
• Passo 3: modificar a função calcula para que ela para que ela 
retorne o resultado, ao invés de imprimi-lo
• return deve sempre retornar um valor do tipo correto
• return pode ser usado sem nenhum valor em funções cujo retorno é do tipo 
“void”
• Passo 4: modificar a função calcula para que ela receba o raio do 
círculo como parâmetro
• Os parâmetros funcionam como variáveis locais
• O valor fornecido como parâmetro (o raio) é copiado para essa “variável local”
39
Criando Funções
• Passo 5: modificar a função calcula para que ela retorne, além do 
perímetro da circunferência, também a área do círculo e o volume 
da esfera
• A = Π∙R2
• V = (4/3) ∙Π∙R3
• Parâmetros cujo nome é precedido por & são passados “por referência”, isto é, 
podem ser modificados na função
• Passo 6: mova a função para o fim do arquivo
• A declaração inicial é chamada “protótipo de função”
40
Variáveis Globais
42
Variáveis Globais
• Variáveis das funções: locais
• Passar dados: parâmetros
• Receber respostas: return, parâm. por ref.
• Não há um jeito diferente?
• Sim: Variáveis globais
• Declarar variável junto com os protótipos das funções
• Cuidado!
• Problemas!
• • Exemplo
43
Aprofundar no 
conhecimento
44
Leitura Específica
• ASCENCIO, A.F.G., ARAUJO, G.S. Estrutura de Dados: Algoritmos, 
Análise da Complexidade e implementações em Java e C/C++. 1ª Ed.. 
São Paulo: Pearson Prentice Hall, 2010. Disponível em: 
https://plataforma.bvirtual.com.br/Acervo/Publicacao/1995
Páginas 1 a 10
• Estruturas de Dados e Algoritmos - Structs. Disponível em: 
https://www.cos.ufrj.br/~rfarias/cos121/aula_04.html
45
https://plataforma.bvirtual.com.br/Acervo/Publicacao/1995
Aprenda +
• Video "O que são Estruturas de dados?". 
Disponível em: 
https://www.youtube.com/watch?v=Frkc_otGrGU
•
Video "Por que e como estudar ALGORITMOS e 
ESTRUTURA DE DADOS?". 
Disponível em: 
https://www.youtube.com/watch?v=SqBgnMgFQTU
46
https://www.youtube.com/watch?v=Frkc_otGrGU
https://www.youtube.com/watch?v=SqBgnMgFQTU

Mais conteúdos dessa disciplina