//---------------------------------------------------------------------------
#pragma hdrstop
//---------------------------------------------------------------------------
void bastandedikodu(int ,int ,int *);
void sondandedikodu(int ,int ,int *);
void yazdir(int *,int ,int );
#pragma argsused
#include <iostream>
#include <conio.h>
using namespace std;
int main(int argc, char* argv[])
{
int kisi;
int *bilgi;
cout<<"Kisi sayisini gir:";
cin>>kisi;
bilgi=new int[kisi];
for(int i=0;i<kisi;i++)
*(bilgi+i)=0;
bastandedikodu(kisi,kisi,bilgi);
getch();
return 0;
}
//---------------------------------------------------------------------------
void bastandedikodu(int kisi,int kisisay,int *bilgi){
int a;
a=kisi;
bilgi[kisisay]=kisisay;
cout<<endl<<" "<<kisisay<<"-> "<<kisisay-1<<"baglandi.";
bilgi[kisisay-1]=kisisay-1; cout<<" "<<kisisay-1<<":"; yazdir(bilgi,1,a);
kisisay=kisisay-1;
if(kisisay>1)
bastandedikodu(a,kisisay,bilgi);
else
sondandedikodu(a,kisisay,bilgi);
}
//------------------------------------------------------------------
void yazdir(int *p,int c,int b){
while((b+1)!=c){
if(p[c]!=0)
cout<<" "<<p[c];
c++;
}
}
//------------------------------------------------------------------------
void sondandedikodu(int kisi,int kisisay,int *bilgi){
int a;
a=kisi;
bilgi[kisisay]=kisisay;
cout<<endl<<" "<<kisisay<<"-> "<<kisisay+1<<"aradi.";
bilgi[kisisay+1]=kisisay+1;
cout<<" "<<kisisay+1<<":";
yazdir(bilgi,1,a);
kisisay=kisisay+1;
if(kisisay<a)
sondandedikodu(a,kisisay,bilgi);
}