Pagini recente » Cod sursa (job #512270) | Cod sursa (job #591971) | Cod sursa (job #30077) | Cod sursa (job #2752159) | Cod sursa (job #1059763)
#include<cstdio>
using namespace std;
int n,x,ok=1;
struct nod
{
int x,nr;
nod *s,*d;
nod(int k) {x=k; nr=0; s=d=NULL;};
} *p;
void insert(nod*& p, int k)
{
if(p==NULL)
{
p = new nod(k);
}
else
{
if(k <= p->x ) {insert(p->s,k); p->nr++; }
else insert(p->d,k);
}
}
void srd(nod* p)
{
if(p!=NULL)
{
srd(p->s);
printf("%d ",p->x);
srd(p->d);
}
}
void search(nod* p, int k)
{
if(p!=NULL)
{
if(p->nr == k) {printf("%d",p->x);ok=0;}
else
{
if(p->nr > k) search(p->s,k);
else search(p->d, k - p->nr -1);
}
}
}
int main()
{
// inserarea elem
printf("n="); scanf("%d",&n);
for(int i=1;i<=n;i++)
{
printf("Elem= "); scanf("%d",&x);
insert(p,x);
}
// afisarea elem
srd(p); printf("\n");
// cautarea unui elem dupa index
printf("Index de cautat= "); scanf("%d",&x);
search(p,x);
if(ok) printf("Nu Exista Acest Indice!");
return 0;
}