» »

[C] dvosmerni seznam

[C] dvosmerni seznam

aceton ::

napisat morm program (podprogram), ki vsatvi novo vozlišče z vsebino el pred vozlišče pos
in sicer men je uspelo narediti naslednje:

deklaracija seznama:
//element oz. vozlisce
struct seznam {
       int data;
       struct seznam *next; //kazalec na naslednji element
       struct seznam *previous; // kazalec na prejšnji element
       };
       
// celoten seznam
struct seznam *prvi, *zadnji;

int positionNmb; //položaj elementa v obliki indeksa - za komuniakcijo z uporabniki
struct element *positionLnk; //položaj elementa, izrazen v obliki povezave - kazalec
  


//pomožna funkcija - komunikacija med uporanikom - pretvorbva in deksa elementa v kazalec na element
struct seznam* nmbToLnk (int posNmb){
     //kazalec do katerega zelimo priti
     struct seznam *pos=prvi;
     int i;
     for(i=0; i<posNmb; i++){
             pos=pos->next;
             }
     return pos;
     }


ostalo delam v glavnem programi:
printf("Vpisi element: ");
                          scanf("%d", &el);
                        
                          printf("Vpisi polozaj: ");
                          scanf("%d", &positionNmb);
                          
                          //če ni nobenega elementa v seznam, ali je element manjši od 0 oz večji od števila vseh elementov v seznam - tedaj javi, da dani položaj ne obstaja
                          if ((prvi==NULL) || (positionNmb<0) || positionNmb>NumEl) {
                                           printf("Seznam nima danega polozaja! \n");
                                           printf("Pritisni tipko za nadaljevanje...");
                                           while(getchar()!= '\n');
                                           getchar();
                                           }
                          
                          else {
                               positionLnk = nmbToLnk(positionNmb);
                               struct seznam *tmp, pom, pom1;
                               tmp=(struct seznam*)malloc(sizeof(struct seznam));
                               tmp->data=el;
                               tmp->next=NULL;
                               tmp->previous=NULL;
                               
                               while (pom!=positonLnk)
                                     pom=pom->next;   
                               pom->previosu=pom1;
                               pom1->next=tmp;
                               tmp->previosu= pom1;
                               pom=tmp->next;
                               pom->previous=tmp;
                              
                          
                          }
                          }


napako mi javi na začetku else stavka (assignment from incompatible pointer type) vendar je ne znam rešiti. kaj bi bilo lahko narobe?

Spura ::

Ti tocno pise kaj in kje. Poglej udelezene tipe.

aceton ::

javi jo v 16. vrstici (positionLnk = nmbToLnk(positionNmb);) in sicer tako kot sem napisala mi napiše assignment from incompatible pointer type

Invictus ::

Narobe deklaracije spremenljivk oz. vračanje napačnega tipa iz funkcije ...

Saj si že skoraj sama našla napako ...
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

aceton ::

skorej ni še nikol zajca ujel


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

enojno povezan seznam -izpis nazaj

Oddelek: Programiranje
243644 (3184) Randomness
»

[C] Seznam s poljem

Oddelek: Programiranje
232474 (1954) aceton
»

statistika črk v stringu C++

Oddelek: Programiranje
112082 (1818) Tutankhamun
»

[C] Povezani seznami in kazalci

Oddelek: Programiranje
242571 (2138) Good Guy
»

[C] Narascajoce sortiranje linearnega seznama

Oddelek: Programiranje
71868 (1757) Jebiveter

Več podobnih tem