Prévia do material em texto
Aula0: Introdução à Estrutura de Dados
Prof. Germano Chacon
Objetivo: Apresentar os conceitos fundamentais de Estruturas de Dados, mostrando aplicações do mundo real e exemplos em C.
Estruturas de Dados
Os tipos primitivos (inteiro, real, caracter e lógico) não são suficientes para representar todos os tipos de informação.
Particularmente quando temos mais de uma informação relacionada. Ex: Lista dos nomes dos alunos de uma sala, endereço de alguém etc.
Utilizaremos os tipos primitivos para construir outras estruturas de dados mais complexas.
3
1. Introdução à Estrutura de Dados
Explicação:
O que são Estruturas de Dados?
Importância na organização e eficiência de programas.
Exemplo código simples de armazenamento de um número sem estruturação:
#include
int main() {
int idade = 25;
float altura = 1.75;
char nome[] = "Carlos";
printf("Nome: %s\nIdade: %d\nAltura: %.2f\n", nome, idade, altura);
return 0;
}
TESTAR NO
https://www.onlinegdb.com/
2 Estruturas de Dados Heterogêneas
Como armazenar diferentes tipos de dados juntos?
Exemplo real: Ficha de um aluno com nome, idade e nota.
Implementação computacional Estruturas (struct) em C.
#include
// Definição da estrutura
struct Aluno {
char nome[50];
int idade;
float nota;
};
int main() {
struct Aluno aluno1 = {"Ana", 20, 8.5};
printf("Nome: %s\nIdade: %d\nNota: %.2f\n", aluno1.nome, aluno1.idade, aluno1.nota);
return 0;
}
Registro de Conjuntos
Combinação de estruturas heterogêneas com homogêneas
Podem ser obtidas ao incluir num registro outro tipo de dados construído
Exemplo: Registro de Estoque com Baixa semanal
Nome: _____________________________________________
Código: ___________________ Preço: __________________
Baixa
1 2 3 4 5 6
7
3. Modularização
Separar um programa em partes menores (módulos).
Exemplo real: montagem de um carro com diferentes setores.
Implementação computacional Funções, Classes em C.
Arquivo funcoes.h:
void exibirMensagem();
Arquivo funcoes.c:
#include
void exibirMensagem() {
printf("Modularização facilita a organização do código!\n");
}
Arquivo main.c:
#include "funcoes.h“
int main() {
exibirMensagem();
return 0;
}
4. Listas, Pilhas e Filas
Lista: Lista de compras onde podemos acessar qualquer item.
Implementação computacional ?
Pilha: Pilha de pratos – o último colocado é o primeiro a ser retirado (LIFO).
Implementação computacional ?
Fila: Fila de banco – o primeiro a entrar é o primeiro a sair (FIFO).
Implementação computacional ?.
Listas Vetores
Manipulação:
1 2 3 4 5 6 7 8 9 38 39 40
inteiro: A;
VCLASSE [ 7 ] ¬ 6,5;
6,5
7,8
5,3
VCLASSE
VCLASSE [ 2 ] ¬ 7,8;
VCLASSE [ 4 ] ¬ 5,3;
leia (A); // supondo que foi informado 6
VCLASSE [ A ] ¬ 9,8;
VCLASSE [ A-1 ] ¬ 9,1;
leia ( VCLASSE [ A+3 ] ); // supondo que foi informado 4,7
9,8
9,1
4,7
10
Listas Matrizes
Manipulação:
1 2 3 4
inteiro : A, B;
MSALA [ 2, 3 ] ¬ 5;
MSALA
MSALA [ 3, 2 ] ¬ 6;
MSALA [ 1, 2 ] ¬ 7;
A ¬ 4;
MSALA [ A, B ] ¬ 8;
MSALA [ A, B-2 ] ¬ 9;
MSALA [ A-2, B-2 ] ¬ 10;
1
2
3
4
5
6
7
8
9
10
11
12
MSALA [ B, A ] ¬ 11;
MSALA [ B-2, A ] ¬ 12;
B ¬ 3;
11
4. Listas, Pilhas e Filas
Pilha: Pilha de pratos – o último colocado é o primeiro a ser retirado (LIFO).
#include
#define TAM 5
int pilha[TAM] = {-1, -1, -1, -1, -1};
int topo = -1;
void push(int valor) {
if (topo = 0) {
int valor = pilha[topo];
pilha[topo] = -1;
topo--;
return valor;
}
return -1;
}
int main() {
push(10);
push(20);
push(30);
pop();
pop();
pop();
return 0;
}
5. Ordenação
Por que ordenar?
Exemplo: organizar nomes na chamada da sala de aula.
Implementação computacional Algoritmos básicos: Bubble Sort, Selection Sort, Quick Sort.
6. Árvores
Estrutura hierárquica: Exemplo real – organograma de empresa.
Árvores binárias e sua importância na computação.
7. Encerramento
Resumo dos principais tópicos:
Como as Estruturas de Dados ajudam na organização e eficiência.
Importância da modularização.
Aplicações de listas, pilhas, filas, ordenação e árvores.
Para Próxima Aula instalar o DEV C
image1.jpeg
image2.png
image3.svg
.MsftOfcThm_Accent1_Fill_v2 {
fill:#734B67;
}
.MsftOfcThm_Accent1_Stroke_v2 {
stroke:#734B67;
}
image4.png
image5.svg
.MsftOfcThm_Accent1_Fill_v2 {
fill:#734B67;
}
.MsftOfcThm_Accent1_Stroke_v2 {
stroke:#734B67;
}
image6.png
image7.svg
.MsftOfcThm_Accent1_Fill_v2 {
fill:#734B67;
}
.MsftOfcThm_Accent1_Stroke_v2 {
stroke:#734B67;
}
image8.jpeg
image9.jpeg
image10.png
image11.png
image12.png