# Include < Iostream >
# Include < Fstream >
# Include < String >
# Include < Vector >
# Include < String . H >
# Include < Stdlib. h >
# Include < Stdio. h >
Using Namespace STD;
Typedef Struct Ring
{
Char A;
Struct Ring * Flink;
Struct Ring * Slink;
} Ring;
Ring * Sring = NULL;
Ring * Hring = NULL; /* The first node */
Ring * Ering = NULL; /* The End Node */
Void Ring_pushback (Ring * R, Int N)
{
Static Int I = 0 ;
If (I = 0 )
{
Sring = R;
++ I;
Hring = R;
}
Else
{
Sring -> Slink = R;
R -> Flink = Sring;
Sring = R;
/* The End Node */
If (I = N - 1 )
{
Sring -> Slink = Hring;
Hring -> Flink = Sring;
Ering = Sring;
}
++ I;
}
}
Int Main ( Void )
{
/* Ofstream fout ("beads. Out ");
Ifstream fin ("beads. In "); */
Int N, I;
Char Temp;
CIN > N;
For (I = 0 ; I < N; ++ I)
{
CIN > Temp;
// Ring * bread = (ring *) malloc (sizeof (ring ));
Ring * Bread = New Ring;
Bread -> A = Temp;
Bread -> Flink = NULL;
Bread -> Slink = NULL;
Ring_pushback (bread, N );
}
Ring * P = NULL;
Ring * Q = NULL;
P = Hring;
Do
{
Cout < P -> A < Endl;
Q = P;
P = P -> Slink;
Delete Q;
} While (P ! = Hring );
}