# include  <iostream> # include  <bits/stdc++.h> using  namespace  std; typedef  int  Elemtype; 
typedef  struct  Lnode { Elemtype data; struct  Lnode  * next; 
} Lnode, * Linklist; 
int  a[ 4 ] = { 1 , 2 , 3 , 4 } ; 
int  n= 4 ; 
void  buildlist ( Lnode * L) { Lnode * s, * r= L; r-> data= a[ 0 ] ; if ( n== 1 ) r-> next= NULL ; else  for ( int  i= 1 ; i< n; i++ ) { s= ( Lnode* ) malloc ( sizeof ( Lnode) ) ; s-> data= a[ i] ; r-> next= s; r= r-> next; } L= ( Linklist) malloc ( sizeof ( Lnode) ) ; L-> next= NULL ; } 
Linklist list_headinsert ( Linklist & L) { Lnode * s; int  x; L= ( Linklist) malloc ( sizeof ( Lnode) ) ; L-> next= NULL ; scanf ( "%d" , & x) ; while ( x!= 9999 ) { s= ( Lnode* ) malloc ( sizeof ( Lnode) ) ; s-> data= x; s-> next= L-> next; L-> next= s; scanf ( "%d" , & x) ; } return  L; 
} 
Linklist List_TailInsert ( Linklist & L) { int  x; L= ( Linklist) malloc ( sizeof ( Linklist) ) ; Lnode * s, * r= L; scanf ( "%d" , & x) ; while ( x!= 9999 ) { s= ( Lnode* ) malloc ( sizeof ( Lnode) ) ; s-> data= x; r-> next= s; r= s; scanf ( "%d" , & x) ; } r-> next= NULL ; return  L; 
} void  disp ( Lnode * L) { Lnode * s= L; while ( s) { cout<< ( s-> data) << " " ; s= s-> next; } cout<< endl; 
} void  deletex ( Lnode * & L, int  x) { if ( L== NULL ) return ; Lnode * p; if ( L-> data= x) { p= L; L= L-> next; free ( p) ; deletex ( L, x) ; } else deletex ( L-> next, x) ; } 
void  del_x_1 ( Linklist & L, Elemtype x) { Lnode * p= L-> next, * pre= L, * q; while ( p!= NULL ) { if ( p-> data== x) { q= p; p= p-> next; pre-> next= p; free ( q) ; } else { pre= p; p= p-> next; } } 
} 
void  R_Print ( Lnode * & L) { Lnode * p= L; if ( p!= NULL ) { R_Print ( L-> next) ; printf ( "%d " , p-> data) ; } 
} 
void  del_min ( Linklist & L) { Lnode * pre= L, * p= L-> next, * q= L-> next; while ( q!= NULL ) { if ( ( q-> data) < ( p-> next-> data) ) { p= pre; pre= q; q= q-> next; } else { pre= q; q= q-> next; } } q= p-> next; p-> next= p-> next-> next; free ( q) ; 
} int  main ( )  { Lnode list; Lnode * L= & list; List_TailInsert ( L) ; del_min ( L) ; disp ( L) ; return  0 ; 
}