Kako do mreze pointera?
28.04.2006. u 19:54 · pre 249 meseci
#1
Trebalo bi da odradim u C-u unos elemenata matrice gde bi se matrica pamtila kao mreza pointera. Imam ideju da to realizujem pomocu dvostrukih pointera ali ne radi kako treba.Znam da sam previse iskomplikovala ali nikako ne radi? Zasto? Hvala
Code:
typedef struct cvor {
float sadrzaj;
struct cvor *levo;
struct cvor *desno;
} BCVOR;
main()
{ int n,m,i,j;
float k;
BCVOR *koren,*novi,*p,*q,*r,*d;
koren=NULL;
printf(" Unesi broj vrsta matrice\n");
scanf("%d",&n);
printf("Unesi broj kolona matrice\n");
scanf("%d",&m);
printf("Unesi elemente matrice");
for(i=1;i<=n;i++) { if (!(koren==NULL)) {
r=q;
q=q->levo;
p=q;
}
for(j=1;j<=m;j++) {
printf("\n a[%d][%d]=",i,j);
scanf("%f",&k);
novi=(BCVOR*)malloc(sizeof(BCVOR));novi->sadrzaj=k;
novi->desno=NULL;
novi->levo=NULL;
if(i==1&&j==1){
koren=novi;p=q=koren;}
if(i==1&&j==1)continue;
if(koren==q) {
p->desno=novi;
p=p->desno;
}
else{ if(j==1) {p=novi;r->levo=novi;}
else { r=r->desno;
p->desno=novi;
p=p->desno;
r->levo=novi;
}
}
r=q;
}
}
typedef struct cvor {
float sadrzaj;
struct cvor *levo;
struct cvor *desno;
} BCVOR;
main()
{ int n,m,i,j;
float k;
BCVOR *koren,*novi,*p,*q,*r,*d;
koren=NULL;
printf(" Unesi broj vrsta matrice\n");
scanf("%d",&n);
printf("Unesi broj kolona matrice\n");
scanf("%d",&m);
printf("Unesi elemente matrice");
for(i=1;i<=n;i++) { if (!(koren==NULL)) {
r=q;
q=q->levo;
p=q;
}
for(j=1;j<=m;j++) {
printf("\n a[%d][%d]=",i,j);
scanf("%f",&k);
novi=(BCVOR*)malloc(sizeof(BCVOR));novi->sadrzaj=k;
novi->desno=NULL;
novi->levo=NULL;
if(i==1&&j==1){
koren=novi;p=q=koren;}
if(i==1&&j==1)continue;
if(koren==q) {
p->desno=novi;
p=p->desno;
}
else{ if(j==1) {p=novi;r->levo=novi;}
else { r=r->desno;
p->desno=novi;
p=p->desno;
r->levo=novi;
}
}
r=q;
}
}
Re: Kako do mreze pointera?