![]() |
![]() |
|
Programiranje Programski jezici, tehnike, alatke... |
![]() |
|
Alatke vezane za temu | Vrste prikaza |
![]() |
#21 | |
Starosedelac
|
![]() Citat:
Debugging Segmentation Faults and Pointer Problems Što se konkretno tvog problema tiče, moraćeš da nam baciš kod da vidimo. ![]() |
|
![]() |
![]() |
![]() |
#22 |
Starosedelac
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
|
![]()
Sobzirom da tek pocinje decko gotov sigurno je da ima niz i da mu brojac ide u niz[brojelemenata] (indeksiranje od nule xD )
Al daj kod ![]() |
![]() |
![]() |
Sledeći korisnik se zahvaljuje korisniku Teva na korisnoj poruci: | ||
voodoo_ (19.1.2013) |
![]() |
#23 |
Član
|
![]()
Resio sam problem, na pogresno mesto sam ubacio terminalnu nulu. Hvala svima.
Teva je bio blizu ![]() |
![]() |
![]() |
![]() |
#24 |
Član
|
![]()
evo i koda, da mozete da se smejete:
Kod:
#include <stdio.h> #include<string.h> void puta4(char s[], char k[]) { int i=0,x=0,j=0,n; for(n=0;n<4;n++) { while(s[i]) { k[x]=s[i]; i++; x++; } if(j<3) { k[x]='-'; i=0; j++; x++; } } s[i]=0; k[x]=0; } char main() { char s[20]; char k[80]; int i,x; printf("Unesi nisku:\n"); scanf("%s", s); puta4(s,k); printf("%s\n", k); return 0; } Poslednja ispravka: Andross (20.1.2013 u 21:33) |
![]() |
![]() |
![]() |
#25 |
Starosedelac
|
![]()
Stavljaj kodove u code block kad pišeš poruku. Nepregledno je mnogo ovako.
|
![]() |
![]() |
![]() |
#26 |
Veteran
|
![]()
Odajem priznanje na originalnosti prvi put vidim da neko koristi char main
![]() ![]() Kod:
#include <stdio.h> #include<string.h> void puta4(char s[], char k[]) { int i,x=0,n; for(n=0;n<4;n++) { i = 0; while(s[i]) { k[x]=s[i]; i++; x++; } k[x] = '-'; x++; } k[--x]=0; } int main() { char s[20]; char k[80]; int i,x; printf("Unesi nisku:\n"); scanf("%s", s); puta4(s,k); printf("%s\n", k); return 0; } |
![]() |
![]() |
Sledeći korisnik se zahvaljuje korisniku Stevvan na korisnoj poruci: | ||
TROMI 93 (11.2.2013) |
![]() |
#27 |
Starosedelac
Član od: 14.6.2011.
Poruke: 2.250
Zahvalnice: 137
Zahvaljeno 440 puta na 399 poruka
|
![]()
Ljudi pomagajte treba mi odgovor na pitanje: Metode formiranja jednostruko spregnute liste. Ovo je neko teorijsko pitanje koje nigde ne mogu da iskopam, ako neko zna neka mi odgovor prosledi u licne poruke ili ovde nek da link gde mogu da nadjem odgovor.Hvala
|
![]() |
![]() |
![]() |
#28 | |
Banned
|
![]()
Ovo je jedino sto sam nasao na google...Ne znam koliko ti to moze pomoci:
Citat:
|
|
![]() |
![]() |
Sledeći korisnik se zahvaljuje korisniku PeTkO na korisnoj poruci: | ||
cane.prebranac (8.2.2013) |
![]() |
#29 |
Starosedelac
Član od: 14.6.2011.
Poruke: 2.250
Zahvalnice: 137
Zahvaljeno 440 puta na 399 poruka
|
![]()
To znam nije to, ovo pitanje se od nekud pojavilo na ispitu, nema sanse da ga izguglam.
|
![]() |
![]() |
![]() |
#30 |
Član
Član od: 30.6.2007.
Poruke: 487
Zahvalnice: 341
Zahvaljeno 103 puta na 52 poruka
|
![]() Kod:
Jednostruko spregnuta lista je najvažniji predstavnike ove grupe, a drugačije se zove i linearna lista ili lanac. Ova struktura je krajnje fleksibilna. Jednostruko spregnuta lista je uređeni par P = (S(P), r(P)), gde je r(P) linearna relacija definisana na skupu S(P). Ono što karakteriše ovu strukture je, prvo, da je pristup dozvoljen svakom elementu, zatim ukloniti se može bilo koji element, a dodati se isto može bilo gde. Jedino ograničenje postavlja činjenica da je ova struktura linearna. Definisane su sve tri vrste pristupa. Pristup po poziciji je nešto sporiji, jer se ne može unapred izračunati adresa elementa. Dakle, za pristup nekom k-tom elementu mora se pristupiti redom svakom do tog k-tog. U ovome se ogleda razlika između statičkog niza i liste. Pristup prema informacionom sadržaju isto zahteva da se pođe od prvog elementa dok se ne nađe traženi. U svakom slučaju, listu možemo snabdeti mehanizmom za navigaciju i tad će u svakom trenutku postojati jedan tekući element. Zbog ovoga listu možemo realizovati na više načina. Svakako, postoji primitivna funkcija Prvi(P). Ukoliko se očekuje da će biti mnogo dodavanja na kraju liste, snabdećemo je i primitivnom funkcijom Poslednji(P). Od liste se takođe može očekivati da bude sortirana. Tada su elementi uređeni u rastućem ili opadajućem redosledu po vrednosti ključa. Zbog ovoga svega se jednostruka lista mora projektovati. Moramo imati u vidu za čega će se koristiti. Ako napravimo jednu listu za više namena, lista će sigurno biti sporija (npr. mehanizam za navigaciju će postojati samo ako nam je potreban). Kao što je već rečeno, ukloniti se može svaki element, ali ovaj postupak nikako nije trivijalan. Na primer, mora se voditi računa o specijalnim slučajevima. Ako je lista prazna, neće doći do uklanjanja. Ako se uklanja prvi ili poslednji element, uz njega se uklanja samo jedna veza. Opšti slučaj uklanjanja je kad se ne uklanja ni prvi ni poslednji element i tada se posle uklanjanja elementa, mora ubaciti nova veza kako bi očuvali linearnost strukture. Takođe se moraju ažurirati veze za Prvi(P) i (ako postoji) za Poslednji(P). Ako je definisana navigacija, prilikom uklanjanja, prvo se pronađe element koji treba ukloniti i označi se kao tekući. Posle obavljenog uklanjanja, tekući više ne postoji i mora se voditi računa koji će element biti novi tekući. Svi ovi problemi su posledica velike fleksibilnosti liste. Slični problemi nastaju i prilikom dodavanja elemenata. To može biti dodavanje u praznu listu (kad se ne ažurira ni jedna veza) ili dodavanje ispred prvog ili iza poslednjeg elementa. U opštem slučaju dodavanje se izvrši između dva elementa, raskine se stara veza i dodaju dve nove. Ako postoji mehanizam navigacije, treba voditi računa o tekućem elementu. Po pravilu, novododati element postaje tekući element. Takođe, postavlja se pitanje pozicije novog elementa. U listama gde redosled elemenata nije bitan, uvek dodajemo ispred prvog da ne bismo prolazili kroz celu listu tražeći poslednji. Ukoliko je redosled bitan, možemo zadati poziciju novog elementa, ali se postavlja pitanje da li element koji se trenutno nalazi na toj poziciji treba pomeriti ispred ili iza novog elementa. (Ovaj problem se najčešće rešava pomoću dve procedure za dodavanje, gde jedna dodaje ispred, a druga iza datog elementa.) Ako je lista sortirana, pozicija dodavanja je unapred poznata. Nađu se dva susedna elementa takva da je ključ jednog „manji“ od ključa novog, a ključ ovog manji od ključa drugog elementa. Novi element se ubaci između ta dva elementa. U sortiranu listu element se najčešće ovako dodaje, tj. lista ostaje sortirana u svakom trenutku. U nekim specijalnim situacijama element se dodaje bilo gde, pa se sortiranje vrši naknadno, što je sporije. [ ]->[ ]->...->[ ] ^Logička struktura jednostruko spregnute liste liste Fizička realizacija liste je isključivo spregnuta. Liste primenjujemo gde god je potrebna fleksibilna struktura. Mnogi redovi čekanja operativnog sistema imaju strukturu liste. ![]() |
![]() |
![]() |
Sledeći korisnik se zahvaljuje korisniku Eris na korisnoj poruci: | ||
cane.prebranac (8.2.2013) |
![]() |
#31 |
Starosedelac
Član od: 14.6.2011.
Poruke: 2.250
Zahvalnice: 137
Zahvaljeno 440 puta na 399 poruka
|
![]()
I ovo slabo ali hvala.
|
![]() |
![]() |
![]() |
#32 |
V.I.P. GNU/Linux
Član od: 1.11.2005.
Poruke: 11.268
Zahvalnice: 2.173
Zahvaljeno 5.001 puta na 2.914 poruka
|
![]()
1. Deklarišeš strukturu od dva polja, vrednost (npr. int) i pokazivač na istu takvu strukturu.
Kod:
struct element { int vrednost; struct element *sledeći; }; Kod:
struct node *početak = NULL; struct node *kraj = početak; Kod:
if (početak == NULL) /* Ovo je kad je lista prazna */ { početak = malloc(sizeof(struct element)); početak->vrednost = nešto; početak->sledeći = NULL; kraj = početak; } else /* Ovo je kad nije, nego ima makar jedan element */ { kraj->sledeći = malloc(sizeof(struct element)); kraj->sledeći->vrednost = nešto; kraj->sledeći->sledeći = NULL; kraj = kraj->sledeći; } Poslednja ispravka: voodoo_ (8.2.2013 u 23:38) Razlog: ipak se mora menjati i 'kraj', ovo nisu reference :) |
![]() |
![]() |
Sledećih 2 korisnika se zahvaljuje korisniku voodoo_ na korisnoj poruci: | ||
cane.prebranac (8.2.2013), Geomaster (8.2.2013) |
![]() |
#33 |
Starosedelac
Član od: 14.6.2011.
Poruke: 2.250
Zahvalnice: 137
Zahvaljeno 440 puta na 399 poruka
|
![]()
Pokusacu nesto da skarabudzim neki odgovor.
![]() |
![]() |
![]() |
![]() |
#34 |
Starosedelac
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
|
![]()
Lista kao logička struktura il njena implementacija u Cu?
|
![]() |
![]() |
![]() |
#35 |
Starosedelac
Član od: 14.6.2011.
Poruke: 2.250
Zahvalnice: 137
Zahvaljeno 440 puta na 399 poruka
|
![]()
Kao logicka struktura.
|
![]() |
![]() |
![]() |
#36 |
Starosedelac
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
|
![]()
Povezana lista je dinamička sturktura podataka koja je pogodna da se koristi ukoliko nije unapred poznat broj podataka. Sasatoji se od struktura koje, najčešće čine par (pokazivač na sledeći čvor, i prioritet(vrednost) ).
Karakteristične operacije za listu su: kreiranje čvora (O(1)), dodavanje na početak (O(1)), dodavanje na kraj (O(n)), dodavanje sortirano (O(n)), pretraživanje (O(n)), ispisivanje liste (O(n)), brisanje liste (O(n)). EDIT: više možeš da nađeš na http://poincare.matf.bg.ac.rs/~mirkos/Algoritmi.pdf pod elementarne strukture podataka. |
![]() |
![]() |
Sledeći korisnik se zahvaljuje korisniku Teva na korisnoj poruci: | ||
cane.prebranac (9.2.2013) |
![]() |
#37 | |
Starosedelac
Član od: 14.6.2011.
Poruke: 2.250
Zahvalnice: 137
Zahvaljeno 440 puta na 399 poruka
|
![]() Citat:
![]() |
|
![]() |
![]() |
![]() |
#38 | |
Starosedelac
|
![]() Citat:
Jako je poželjno dodati i pokazivač na poslednji element liste tako da dodavanje na kraj ima složenost O(1). |
|
![]() |
![]() |
![]() |
#39 |
Starosedelac
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
|
![]()
A gde tačno misliš da se doda pokazivač na poslednji element?
|
![]() |
![]() |
![]() |
#40 |
Starosedelac
|
![]()
Nisam siguran da sam dobro razumeo pitanje. Kako misliš "gde da se doda"?
Ako misliš na deklaraciju zavisi od jezika. Ovde sam više uopšteno govorio o listama. U C-u bi je verovatno deklarisao na početku main-a, u C++ u samoj klasi... |
![]() |
![]() |
![]() |
Bookmarks sajtovi |
|
|
![]() |
||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Kako najlakše naučiti programiranje? | Eris | Programiranje | 50 | 11.11.2010 18:10 |
Linux i C++ programiranje | Andross | Slobodni softver | 13 | 4.1.2007 21:43 |
Symbian programiranje | Optique | Programiranje | 1 | 16.6.2006 9:58 |
Programiranje u OpenGL | Damjan | Pravljenje igara | 9 | 7.3.2006 2:05 |
Programiranje? | Wo[R]MY | Programiranje | 1 | 3.3.2006 18:14 |