Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Test Run > Programiranje
Uputstvo Članstvo Kalendar Današnje poruke Pretraži

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 5.1.2008, 13:30   #1
Cyrus_M
Novi član
 
Član od: 5.1.2008.
Poruke: 2
Zahvalnice: 0
Zahvaljeno 0 puta na 0 poruka
Određen forumom Objasnjenje koda C++

Molio bih vas ako mi mozete pojasniti samo ovaj dio koda koji se odnosi na "ispis liste naprijed" i "dodavanje clanova u listu" malo imam problema sa pokazivacima. Samo bi htio da mi pokazete sta te dvije funkcije ustvari rade i na koji nacin ovaj program sortira unesene clanove u listi......

PHP kod:
#include <stdio.h> 
#include <string.h>                                          
#include <stdlib.h>
typedef struct lista {
                     
unsigned int kljuc;
                     
char naziv[20];
                     
struct lista *prethodni;
                     
struct lista *slijedeci;
                  } 
LISTA;
unsigned int broj_elemenata(LISTA *pocetak_liste)
          {
               
LISTA *p;
               
unsigned int br_el=0;
         
pocetak_liste;
        while(
p)
            {
                   ++
br_el;
                    
p->slijedeci;
           }
   return(
br_el);
}
void ispis_liste_naprijed(LISTA *pocetak_liste)
              {
                  
LISTA *p;
                   
pocetak_liste;
                   
printf("\n");
                    while(
p)
                         {
                           
printf("%5d->%20s\n",p->kljuc,p->naziv);
                           
p->slijedeci;
                         }
}


void dodaj_element(LISTA **pocetak_listeLISTA **kraj_listeLISTA *novi_element)
                {
                          
LISTA *p, *prethodni;
                           
prethodni = *pocetak_liste;
                            if(
== NULL)
                                   {
                                         
novi_element->slijedeci NULL;
                                         
novi_element->prethodni NULL;
                                         *
pocetak_liste novi_element;
                                         *
kraj_liste novi_element;
                                         return;
                                    }
                            while(
&& p->kljuc <=novi_element->kljuc)
                                         {
                                         
prethodni p;
                                         
p->slijedeci;
                                         }
                           if(
== *pocetak_liste)
                                    {
                                         
novi_element->slijedeci p;
                                         
novi_element->prethodni NULL;
                                         (*
pocetak_liste)->prethodni novi_element;
                                         *
pocetak_liste novi_element;
                                         return;
                                }
                           
prethodni->slijedeci novi_element;
                           
novi_element->prethodni prethodni;
                           
novi_element->slijedeci p;
                        if(
novi_element->slijedeci)
                              
novi_element->slijedeci->prethodninovi_element;
                          else
                               *
kraj_liste novi_element;
}
void dodaj_u_listu(LISTA **pocetak_liste,LISTA **kraj_liste)
              {
              
LISTA *novi_element;
              
unsigned int ucitani_kljuc;
              
char ucitani_naziv[20];
                           do
                                {
                                         
printf("Upisi kljuc (0 za kraj) :");
                                         
scanf("%5d",&ucitani_kljuc);
                                         if(
ucitani_kljuc == 0)
                                              break;
                                         
printf("Upisi naziv :");
                                         
scanf("%s",&ucitani_naziv);
                                         
novi_element = (LISTA *) malloc(sizeof(LISTA));
                                         
novi_element->kljuc ucitani_kljuc;
                                         
strncpy(novi_element->nazivucitani_naziv,20);
                                         
dodaj_element(pocetak_listekraj_liste,novi_element);
                                } while(
1);
}

int main()
              {
                    
LISTA *pocetak_liste=NULL, *kraj_liste=NULL;
                    
unsigned int upit;
                          for(;;)
                              {
                              
printf("\n\nIzaberi\n"
                             "1.Dodavanje elemenata\n"
                             "2.Brisanje elemenata\n"
                             "3.Ispis liste naprijed\n"
                             "4.Ispis liste nazad\n"
                             "0.Kraj\n"
                             " Izbor: "
);
                            
scanf("%1d",&upit);
                          switch(
upit)
                                         {
                                         case 
0: exit(0);
                                         break;
                                         case 
1dodaj_u_listu(&pocetak_liste,&kraj_liste);
                                         break;
                                         case 
2brisi_iz_liste(&pocetak_liste, &kraj_liste);
                                         break;
                                         case 
3ispis_liste_naprijed(pocetak_liste);
                                         
printf("---ukupno %d elem.---\n",broj_elemenata(pocetak_liste));
                                         break;
                                         case 
4ispis_liste_nazad(kraj_liste);
                                         
printf("---ukupno %d elem.---\n",broj_elemenata(pocetak_liste));
                                         break;
                                       }
                            } 
Cyrus_M je offline   Odgovor sa citatom ove poruke
Stara 6.1.2008, 5:53   #2
PDarko
Veteran
 
Član od: 11.7.2006.
Lokacija: /dev/random
Poruke: 1.011
Zahvalnice: 163
Zahvaljeno 182 puta na 147 poruka
Određen forumom Re: Objasnjenje koda C++

Lančane liste su mi slaba tačka, ali ovaj program ne radi. Tačnije radi, ali nema kraja (osim ako se ne koristi Task Manager).

for ( ; ; ) je beskonačna petlja.
PDarko je offline   Odgovor sa citatom ove poruke
Stara 7.1.2008, 14:47   #3
Brains
Cogito ergo Brains
 
Avatar korisnika Brains
 
Član od: 16.10.2005.
Lokacija: Lobanja
Poruke: 417
Zahvalnice: 3
Zahvaljeno 42 puta na 26 poruka
Određen forumom Re: Objasnjenje koda C++

Citat:
PDarko kaže: Pregled poruke
Lančane liste su mi slaba tačka, ali ovaj program ne radi. Tačnije radi, ali nema kraja (osim ako se ne koristi Task Manager).

for ( ; ; ) je beskonačna petlja.
Nije bas tako... Ima kraj.

case 0: exit(0);
Brains je offline   Odgovor sa citatom ove poruke
Stara 7.1.2008, 17:41   #4
PDarko
Veteran
 
Član od: 11.7.2006.
Lokacija: /dev/random
Poruke: 1.011
Zahvalnice: 163
Zahvaljeno 182 puta na 147 poruka
Određen forumom Re: Objasnjenje koda C++

Citat:
Brains kaže: Pregled poruke
Nije bas tako... Ima kraj.

case 0: exit(0);
U pravu si. Čim sam video for nism gledao dalje.
Inače, to je nestrukturno programiranje i treba ga izbegavati.
PDarko je offline   Odgovor sa citatom ove poruke
Stara 10.1.2008, 22:53   #5
Cyrus_M
Novi član
 
Član od: 5.1.2008.
Poruke: 2
Zahvalnice: 0
Zahvaljeno 0 puta na 0 poruka
Određen forumom Re: Objasnjenje koda C++

Citat:
PDarko kaže: Pregled poruke
U pravu si. Čim sam video for nism gledao dalje.
Inače, to je nestrukturno programiranje i treba ga izbegavati.

hehehe.... izbjegavati u sirokom luku.... Hvala puno decki, rjesio sam problem
Cyrus_M je offline   Odgovor sa citatom ove poruke
Stara 10.1.2008, 23:30   #6
fingerprint
Veteran
 
Član od: 5.11.2006.
Lokacija: Dark Side Of The Moon
Poruke: 1.121
Zahvalnice: 394
Zahvaljeno 594 puta na 222 poruka
Slanje poruke preko MSN-a korisniku fingerprint Slanje poruke preko Yahooa korisniku fingerprint
Određen forumom Re: Objasnjenje koda C++

I jos nesto : ovo je cist C, a ne C++
Anyway, ostavite temu otvorenom, ako jos neko ima nedoumice sa svojim sourceom, sto ne bi postovao ovde...
fingerprint je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi


Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


Slične teme
tema temu započeo forum Odgovora Poslednja poruka
uTorrent - kratko objasnjenje Cvrcak Internet tehnologije 130 13.4.2008 11:50
Saveti oko kupovine laptopova, i objasnjenje Crusader88 ŠDK - Prenosni računari 13 21.11.2007 23:26
Objasnjenje parametara u BIOSU? Branislav Gavric Nosači podataka 27 5.11.2007 3:51
Kaspersky Anti virus potrebno objasnjenje? Captain Jack Sparrow Zaštita 6 26.6.2007 12:00
Svadja oko koda Obliviona Andross Pravljenje igara 5 27.1.2007 21:51


Sva vremena su po Griniču +2 h. Sada je 12:41.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com