HITNO potrebno objasnjenje jednog koda u C-u

HITNO potrebno objasnjenje jednog koda u C-u

offline
  • Pridružio: 20 Jan 2009
  • Poruke: 3

Ovo je jedna f-ja za upis matrice ,realizovane preko dvostruko povezanih lisli.
Bilo bi super ako bi neko mogao da mi pomogne u tumacenju,tj. ne kapiram sta koji pokazivac radi.
p-ide na desno kroz vrstu
r-ide (valjda) kroz prvu kolonu
a sta radi q??

Bas mi je potrebno razjasnjenje,pa bih molila da mi neko pomogne,potrebno mi je za prekosutra ;-(

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; }



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 18 Apr 2003
  • Poruke: 5001
  • Gde živiš: Beograd

Koliko sam ja shvatio r je levo, q je desno a p je poslednji element koji je dodat. Varijabla "koren" pokazuje na prvi element matrice.

Ovako napamet prolazeci kroz petlju cini mi se da ima greska u kodu koja ce da pojavi kod q->levo=novi; ali nemam kompletan kod da bi isprobao.



Ko je trenutno na forumu
 

Ukupno su 518 korisnika na forumu :: 8 registrovanih, 1 sakriven i 509 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: bigfoot, ikan, Mixelotti, mrav pesadinac, nenad81, ruma, Shilok, sombrero