Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Estrutura de Dados I: Fila Sequencial Circular, Notas de estudo de Engenharia Telemática

Neste documento, aprenda a implementar uma fila sequencial circular, uma estrutura de dados simples que permite a adição e remoção de elementos em ambos os extremos. A estrutura é definida e as operações básicas, como criar, verificar se está vazia, verificar se está cheia, obter o elemento da frente, enfileirar e desenfileirar, são apresentadas. Além disso, é fornecido um código de exemplo em c.

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 30/11/2010

samuel-santos-22
samuel-santos-22 🇧🇷

4.6

(41)

262 documentos

1 / 2

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1






 !  "
#
$%&
 '()
)
)
)
*)

! 
 +,-&
./)  
./.0
./)
*
 !
1,-&
,//-)
*
"
!,-&
,//-)
*
#$%&'%(

2% "   "  
3%  %    %  
 

 +, -&
,1,--
)
 / '(-)
0)
*
%%
, -&
,!,--
)
,.-44)
./,.40-5)
. '.(/ -)
0)
*
,.//.0-
./)

.44)
pf2

Pré-visualização parcial do texto

Baixe Estrutura de Dados I: Fila Sequencial Circular e outras Notas de estudo em PDF para Engenharia Telemática, somente na Docsity!

Disciplina: Estrutura de Dados | Professor: Alex Sandro C. Rego FILA SEQUENCIAL CIRCULAR Definição da Estrutura de Dados do tipo FILA SEQUENCIAL CIRCULAR ginclude fdefine MAX 50 /* Desta vez, vamos fazer diferente. Consideraremos uma estrutura que armazena strings de 20 caracteres */ typedef struct ( int elemento [MAX] ; int frente; int final; int tam; kfila; Criar Fila /* Criando uma fila vazia */ void criaFila( fila *£f ) « f->frente = 0; // condicao de fila vazia f->final = f->tam = Verificar se a fila está vazia int filavVazia(fila £) ( return( f.tam == 0); ; Verificar se a fila está cheia int filaCheia(fila £) ( return( f.tam == MAX); : Obter o elemento que está na frente da fila, sem retira-lo /* Operacao que devolve o elemento que esta no início da fila. Um ponteiro para o elemento da frente sera retornado pelo argumento da funcao. */ int elementoDaFrente (fila £, int *valor ) « if (filavazia(f)) return O; *valor = f.elemento[f.frente]); return 1; Enfileirar um elemento int enfileira(fila *f, int valor) ( if (filaCheia(*£)) if (f->final == MAX-1) return 0; f->final = 0; (f->tam) ++; else f->final = (f->finalt1) SMAX; Estinaltt; f->elemento [f->final] = valor); , return 1; Desenfileirar um elemento da fila int desenfileira(fila *f, int *valor) ( if ( lelementoDaFrente (*f, valor)) return O; (f->tam) --; f->frente = (f->frente+1) SMAX; return 1; /* o teste de fila vazia já eh feito */ /* dentro da função elementoDaFrente () */ Imprimir os elementos da fila int imprimirElementos( fila £ ) « int à; if ( filavazia( £ )) return O; printf(Manl ); for (i=l; i <= f.tam; i++) « printf("Sd ",f.elemento[(f.frente)]); f.frente = (f.frentet1) &MAX; ) printf (VI); return 1;