Code:
Cvor *upis(Cvor *koren)
{
int n,m,i,j;
int k;
Cvor *novi,*p,*q,*r;
printf(" Broj vrsta matrice ");
scanf("%d",&n);
printf(" Broj kolona matrice ");
scanf("%d",&m);
printf("\n");
koren=NULL;
printf(" Elementi matrice\n\n");
for(i=1;i<=n;i++) {
for(j=1;j<=m;j++) {
printf("Unesi element [%d,%d]=",i,j);
scanf("%d",&k);
novi=(Cvor*)malloc(sizeof(Cvor));
novi->vrednost=k;
novi->desno=NULL;
novi->levo=NULL;
if(i==1&&j==1){ koren=novi;
p=q=r=koren;
}
if(i==1&&j==1)continue;
if((j!=1)&&(i==1)){
p->desno=novi;
p=p->desno;
}
if((j==1)&&(i>1)){
r->levo=novi;
q=r->desno;
r=r->levo;
p=r;
}
if((j!=1)&&(i>1)) {
q->levo=novi;
q=q->desno;
p->desno=novi;
p=p->desno;
}
}
}
return koren;
}
Cvor *upis(Cvor *koren)
{
int n,m,i,j;
int k;
Cvor *novi,*p,*q,*r;
printf(" Broj vrsta matrice ");
scanf("%d",&n);
printf(" Broj kolona matrice ");
scanf("%d",&m);
printf("\n");
koren=NULL;
printf(" Elementi matrice\n\n");
for(i=1;i<=n;i++) {
for(j=1;j<=m;j++) {
printf("Unesi element [%d,%d]=",i,j);
scanf("%d",&k);
novi=(Cvor*)malloc(sizeof(Cvor));
novi->vrednost=k;
novi->desno=NULL;
novi->levo=NULL;
if(i==1&&j==1){ koren=novi;
p=q=r=koren;
}
if(i==1&&j==1)continue;
if((j!=1)&&(i==1)){
p->desno=novi;
p=p->desno;
}
if((j==1)&&(i>1)){
r->levo=novi;
q=r->desno;
r=r->levo;
p=r;
}
if((j!=1)&&(i>1)) {
q->levo=novi;
q=q->desno;
p->desno=novi;
p=p->desno;
}
}
}
return koren;
}
e,sad mi nije bas jasno,sta koji pokazivac radi? (to i jeste pitanje)
p-ide desno kroz vrstu;
r-ide kroz kolonu,
a sta radi q?
Molim za pomoc i pojasnjenje kako radi ova f-ja.
Unapred hvala