• Nenhum resultado encontrado

Estrutura de Dados

N/A
N/A
Protected

Academic year: 2022

Share "Estrutura de Dados"

Copied!
38
0
0

Texto

(1)

Estrutura de Dados

Filas

(2)

Introdução

• Fila

– Em Estrutura de Dados, uma Fila é um vetor

(array) que possui uma regra de inserção e

remoção de elementos.

(3)

Representação Gráfica

1 2 3 4 5

0 6 7

int v[8];

v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7]

(4)

Vetor (Array)

• Em um vetor não existe regras de inserção ou remoção de elementos.

• Você pode inserir ou remover de qualquer posição.

• Ex.

1 2 3 4 5

0 6 7

Inserir

int v[8];

V[1] = 10;

V[5] = 20;

Remover

Alterando

V[1] = 0;

(5)

Observação

• Não Existe uma regra de inserção ou remoção fixa.

(6)

3 2

1

Exemplo: Fila de Impressão

Os três usuários enviam o arquivo Para ser impresso ao mesmo tempo.

Fila de Impressão

(7)

3 2

1

1 2 3

Fila de Impressão

(8)

3 2

1

1 2 3

1

Fila de Impressão

(9)

3 2

1

2 3

2

Fila de Impressão

(10)

Fila

• Regra Fila

– PEPS: O primeiro elemento a entrar na fila é o

primeiro a sair.

(11)

Fila

• Toda a fila é construída de forma lógica e de acordo com a sua regra PEPS.

• Essa construção possui como base todo o aprendizado das estruturas de programação da Linguagem C.

• Como por exemplo, vetores, variáveis,

estruturas condicionais e repetição.

(12)

Operações sobre Filas

A

B C

#define t 3 char fila[t];

int inicio = 0, fim = 0;

int tam = 0;

Início

0 1 2

(13)

Operações sobre Filas

A

B C

Enfileirar

0 1 2

#define t 3 char fila[t];

int inicio = 0, fim = 0;

int tam = 0;

(14)

Operações sobre Filas

A

B C

Enfileirar

0 1 2

#define t 3 char fila[t];

int inicio = 0, fim = 0;

int tam = 0;

(15)

Operações sobre Filas

A

B C

Enfileirar

0 1 2

#define t 3 char fila[t];

int inicio = 0, fim = 0;

int tam = 0;

(16)

Operações sobre Filas

A B

C

Enfileirar

0 1 2

#define t 3 char fila[t];

int inicio = 0, fim = 0;

int tam = 0;

(17)

Operações sobre Filas

A B C

#define t 3 char fila[t];

int inicio, fim;

Enfileirar

0 1 2

(18)

Operações sobre Filas

A B C

Desenfileirar

0 1 2

#define t 3 char fila[t];

int inicio = 0, fim = 0;

int tam = 0;

(19)

Operações sobre Filas

A

B C

Desenfileirar

0 1 2

#define t 3 char fila[t];

int inicio = 0, fim = 0;

int tam = 0;

(20)

Operações sobre Filas

A B

C

Desenfileirar

0 1 2

#define t 3 char fila[t];

int inicio = 0, fim = 0;

int tam = 0;

(21)

Operações sobre Filas

A

B C

Desenfileirar

0 1 2

#define t 3 char fila[t];

int inicio = 0, fim = 0;

int tam = 0;

(22)

Operações sobre Filas

A B C

#define t 3 char fila[t];

int inicio, fim;

int total;

Forma de Controle

0 1 2

• A forma de controle da fila é feita através do seu inicio, fim e seu total.

inicio fim total

(23)

Operações sobre Filas

A B C

#define t 3 char fila[t];

int inicio, fim;

int total;

Inserir

0 1 2

• A forma de controle da fila é feita através do seu inicio, fim e seu total.

inicio fim total

(24)

Operações sobre Filas

A B

C

#define t 3 char fila[t];

int inicio, fim;

int total;

Inserir

0 1 2

• A forma de controle da fila é feita através do seu inicio, fim e seu total.

inicio

fim Total = 1

(25)

Operações sobre Filas

A B

C

#define t 3 char fila[t];

int inicio, fim;

int total;

Inserir

0 1 2

• A forma de controle da fila é feita através do seu inicio, fim e seu total.

inicio fim

Total = 2

(26)

Operações sobre Filas

A B C

#define t 3 char fila[t];

int inicio, fim;

int total;

Inserir

0 1 2

• A forma de controle da fila é feita através do seu inicio, fim e seu total.

inicio fim

Total = 3

(27)

Operações sobre Filas

A B C

#define t 3 char fila[t];

int inicio, fim;

int total;

Remover

0 1 2

• A forma de controle da fila é feita através do seu inicio, fim e seu total.

inicio fim

Total = 3

(28)

Operações sobre Filas

A

B C

#define t 3 char fila[t];

int inicio, fim;

int total;

Remover

0 1 2

• A forma de controle da fila é feita através do seu inicio, fim e seu total.

inicio fim

Total = 2

(29)

Operações sobre Filas

A B

C

#define t 3 char fila[t];

int inicio, fim;

int total;

Remover

0 1 2

• A forma de controle da fila é feita através do seu inicio, fim e seu total.

inicio fim

Total = 1

(30)

Operações sobre Filas

Algoritmo Enfileirar

Algoritmo

- Verificar se a fila está cheia - Se a fila não estiver cheia

-inserir o elemento no final da fila -senão

-Avisar ao usuário que a fila está cheia

(31)

Operações sobre Filas

Algoritmo Enfileirar

PseudoCódigo

void enfileirar(int elemento) {

if(total >= t) {

printf(“A fila esta cheia\n”);

} else {

fila[fim] = elemento;

fim = fim + 1;

total = total + 1;

if(fim >= t) {

fim = 0;

} }

}

(32)

Operações sobre Filas

Algoritmo Desenfileirar

Algoritmo

- Verificar se a fila está vazia - Se a fila não estiver vazia

-remover o elemento no inicio da fila -senão

-Avisar ao usuário que a fila está vazia

(33)

Operações sobre Filas

Algoritmo Desenfileirar

PseudoCódigo

void desenfileirar() {

char desenfileirado;

if(total <= 0) {

printf(“A fila esta vazia\n”);

} else {

desenfileirado = fila[inicio];

inicio = inicio + 1;

total = total - 1;

printf(“O elemento %c foi desenfileirado!\n”, desenfileirado);

if(inicio >= t) {

inicio = 0;

} }

}

(34)

Operações sobre Filas

Algoritmo Listar Fila

Algoritmo

- Verificar se a fila está vazia - Se a fila não estiver vazia

-Listar todos os elementos da fila -senão

- exibir ao usuário que a fila está vazia

(35)

Operações sobre Filas

Algoritmo Listar Fila

PseudoCódigo

void listarFila() {

int pos,i;

if(total <= 0) {

printf(“A fila esta vazia\n”);

} else {

pos = inicio;

for(i = 0; i < total; i++) {

printf(“Elemento %d posicao %d\n”, fila[pos],pos);

pos = pos + 1;

if(pos >= t) {

pos = 0;

} } }

}

(36)

Operações sobre Filas

Algoritmo Exibir elemento do inicio

Algoritmo

- Verificar se a fila está vazia - Se a fila não estiver vazia

-exibir o elemento do inicio -senão

- exibir ao usuário que a fila está vazia

(37)

Operações sobre Filas

Algoritmo Exibir elemento do topo

PseudoCódigo

void elementoInicio() {

if(total <= 0) {

printf(“A fila esta vazia\n”);

} else {

printf(“O elemento inicio eh %d!\n”, fila[inicio]);

} }

(38)

Trabalho

• Faça um programa que apresente o menu de opções abaixo:

1. Cadastrar número;

2. Mostrar números pares entre o primeiro e ultimo numero cadastrado.

3. Excluir o número 4. Sair

Observações

a) O programa deve ser implementado usando uma estrutura do tipo fila

b) A opção 1 do menu cadastra um número de cada vez c) Mostrar mensagem para opção invalida do menu

d) Quando a opção do menu não puder ser realizada, mostrar mensagem.

e) Obs: A fila possui o tamanho 10

Referências

Documentos relacionados

Vantagens. Permitem avaliar melhor as atitudes para análise das questões estruturadas;. São muito úteis como primeira questão de um determinado tema porque deixam o

Se o tendão formar um ângulo aberto para fora, estamos diante de um calcâneo valgo, e o apoio sobre ele deve ser maior do lado interno (Figura 6). Se o tendão parecer oblíquo de

Analisando a prática dos professores de Educação Física de Piracicaba, Moreira (1991) constatou que eles apresentam atitudes formais e autoritárias na relação com os alunos; vêem

Samuel Tabosa de Castro.. Dedicamos esta proposta a todas as pessoas portadoras de deficiência atendidas pelas APAEs, por acreditarmos em seu potencial de aprendizagem e

É o movimento humano com determinado significado/sentido, que por sua vez, lhe é conferido pelo contexto histórico-cultural. O movimento que é tema da educação física é o que

O objetivo desta pesquisa foi investigar o papel da Educação Física na Educação Infantil, considerando-se os objetivos gerais, objetivos específicos, os conteúdos da

98: “En- quanto não permitir o fundo de custeio dos serviços de inspeção, a designação de inspetores especializados para orientação do en- sino da Musica e dos exercícios

sem discriminação”; “...o ensino inclusivo será uma oportunidade das pessoas portadoras de necessidades especiais de mostrar suas potencialidades”; “espero que esta