Buscar

pilhaSimplesTEX

Prévia do material em texto

Implementacao da Pilha Simples
Denis R. S. Pinheiro
September 29, 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 {
i n 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 p i l ha {
No∗ i n i ;
} ;
typede f s t r u c t p i l ha Pi lha ;
Pi lha ∗ c r i a ( void ) ;
void i n s e r e ( Pi lha ∗ f , f l o a t v ) ;
f l o a t r e t i r a ( Pi lha ∗ f ) ;
i n t vaz ia ( Pi lha ∗ f ) ;
void l i b e r a ( Pi lha ∗ f ) ;
void imprime ( Pi lha ∗ f ) ;
i n t main ( ){
Pi lha ∗ f = c r i a ( ) ;
i n s e r e ( f , 1 ) ;
i n s e r e ( f , 2 ) ;
i n s e r e ( f , 3 ) ;
1
i n s e r e ( f , 4 ) ;
i n s e r e ( f , 5 ) ;
i n s e r e ( f , 6 ) ;
imprime ( f ) ;
r e t i r a ( f ) ;
imprime ( f ) ;
i n s e r e ( f , 7 ) ;
i n s e r e ( f , 8 ) ;
i n s e r e ( f , 9 ) ;
r e t i r a ( f ) ;
imprime ( f ) ;
p r i n t f (”\n ” ) ;
l i b e r a ( f ) ;
r e turn 0 ;
}
Pi lha ∗ c r i a ( void ){
Pi lha ∗ f = ( Pi lha ∗) mal loc ( s i z e o f ( Pi lha ) ) ;
f−>i n i = NULL;
re turn f ;
}
No∗ i n s i n i ( Pi lha ∗ f , 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 = f−>i n i ;
i f ( f−>i n i == NULL)
p−>prox = NULL;
re turn p ;
}
void i n s e r e ( Pi lha ∗ f , f l o a t v ){
f−>i n i= i n s i n i ( f , v ) ;
}
No∗ r e t i n i (No∗ i n i ){
2
No∗ p = in i−>prox ;
f r e e ( i n i ) ;
r e turn p ;
}
f l o a t r e t i r a ( Pi lha ∗ f ){
f l o a t v ;
i f ( vaz ia ( f ) ){
p r i n t f (” Pi lha 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 ) ;
r e turn v ;
}
i n t vaz ia ( Pi lha ∗ f ){
r e turn ( f−>i n i == NULL) ;
}
void l i b e r a ( Pi lha ∗ 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 ( Pi lha ∗ f ){
No∗ q ;
p r i n t f (”\n\nPilha : ” ) ;
f o r ( q = f−>i n i ; q != NULL; q = q−>prox )
p r i n t f (”\n\ t%d ” ,q−>i n f o ) ;
}
/∗
∗ By : Denis P inhe i ro . Todos os d i r e i t o s r e s e rvados .
3
∗ 17 :05 :2013
∗/
4

Continue navegando