Baixe o app para aproveitar ainda mais
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
Compartilhar