Buscar

filaSimplesTEX

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Implementacao da Fila simplesmente
encadeada
Denis R. S. Pinheiro
September 28, 2013
#inc lude <s t d i o . h>
#inc lude <s t d l i b . h>
s t r u c t no {
f l o a t i n f o ;
s t r u c t no∗ prox ;
} ;
typede f s t r u c t no No ;
s t r u c t f i l a {
No∗ i n i ;
No∗ f im ;
} ;
typede f s t r u c t f i l a F i l a ;
F i l a ∗ c r i a ( void ) ;
void i n s e r e ( F i l a ∗ f , f l o a t v ) ;
f l o a t r e t i r a ( F i l a ∗ f ) ;
i n t vaz ia ( F i l a ∗ f ) ;
void l i b e r a ( F i l a ∗ f ) ;
void imprime ( F i l a ∗ f ) ;
i n t main ( ){
Fi l a ∗ f = c r i a ( ) ;
1
i n s e r e ( f , 2 0 ) ;
i n s e r e ( f , 8 ) ;
i n s e r e ( f , 3 ) ;
i n s e r e ( f , 5 ) ;
imprime ( f ) ;
r e t i r a ( f ) ;
r e t i r a ( f ) ;
imprime ( f ) ;
i n s e r e ( f , 8 ) ;
i n s e r e ( f , 4 ) ;
i n s e r e ( f , 1 ) ;
imprime ( f ) ;
l i b e r a ( f ) ;
r e turn 0 ;
}
Fi l a ∗ c r i a ( void ){
Fi l a ∗ f = ( F i l a ∗) mal loc ( s i z e o f ( F i l a ) ) ;
f−>i n i = f−>f im = NULL;
re turn f ;
}
No∗ i n s f im (No∗ fim , f l o a t v ){
No∗ p = (No∗) mal loc ( s i z e o f (No ) ) ;
p−>i n f o = v ;
p−>prox = NULL;
i f ( f im != NULL)
fim−>prox = p ;
re turn p ;
}
No∗ r e t i n i (No∗ i n i ){
No∗ p = in i−>prox ;
f r e e ( i n i ) ;
r e turn p ;
}
2
void i n s e r e ( F i l a ∗ f , f l o a t v ){
f−>f im = in s f im ( f−>fim , v ) ;
i f ( f−>i n i==NULL)
f−>i n i = f−>f im ;
}
f l o a t r e t i r a ( F i l a ∗ f ){
f l o a t v ;
i f ( vaz ia ( f ) ){
p r i n t f (” F i l a vaz ia .\n ” ) ;
e x i t ( 1 ) ;
}
v = f−>i n i−>i n f o ;
f−>i n i = r e t i n i ( f−>i n i ) ;
i f ( f−>i n i == NULL)
f−>f im = NULL;
re turn v ;
}
i n t vaz ia ( F i l a ∗ f ){
r e turn ( f−>i n i == NULL) ;
}
void l i b e r a ( F i l a ∗ f ){
No∗ q = f−>i n i ;
whi l e ( q != NULL){
No∗ t = q−>prox ;
f r e e ( q ) ;
q = t ;
}
f r e e ( f ) ;
}
void imprime ( F i l a ∗ f ){
No∗ q ;
p r i n t f (”\ nFi la : ” ) ;
f o r ( q = f−>i n i ; q != NULL; q = q−>prox )
3
p r i n t f (”%2. f −> ” ,q−>i n f o ) ;
p r i n t f (”NULL\n\n ” ) ;
}
/∗
∗ By : Denis P inhe i ro . Todos os d i r e i t o s r e s e rvados .
∗ 17 :05 :2013
∗/
4

Outros materiais

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes