Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
Fruc Forumaš(ica)
Pridružen/a: 01. 12. 2010. (13:24:26) Postovi: (11)16
Spol:
|
|
[Vrh] |
|
ante003 Forumaš(ica)
Pridružen/a: 13. 10. 2008. (17:45:10) Postovi: (3C5)16
Spol:
|
|
[Vrh] |
|
Cobs Forumaš(ica)
Pridružen/a: 21. 01. 2008. (13:32:15) Postovi: (206)16
Spol:
Lokacija: Geto
|
Postano: 21:13 pon, 17. 1. 2011 Naslov: |
|
|
[quote="Fruc"]Trebao bi učitat sve rezervirane riječi iz C-a u jedan rječnik, piše da može iz datoteke, a mene zanima kako se to radi, a ako neko zna neki drugi način a da nije ručno upisivanje također može, hvala[/quote]
http://degiorgi.math.hr/prog2/materijali/p2-vjezbe.pdf
pogledaj zadnju lekciju, imaš par početničkih primjera, a imaš još 1000 primjera na internetu, sam malo proćaćkaj
Fruc (napisa): | Trebao bi učitat sve rezervirane riječi iz C-a u jedan rječnik, piše da može iz datoteke, a mene zanima kako se to radi, a ako neko zna neki drugi način a da nije ručno upisivanje također može, hvala |
http://degiorgi.math.hr/prog2/materijali/p2-vjezbe.pdf
pogledaj zadnju lekciju, imaš par početničkih primjera, a imaš još 1000 primjera na internetu, sam malo proćaćkaj
|
|
[Vrh] |
|
Fruc Forumaš(ica)
Pridružen/a: 01. 12. 2010. (13:24:26) Postovi: (11)16
Spol:
|
|
[Vrh] |
|
čungalunga Forumaš(ica)
Pridružen/a: 25. 11. 2009. (20:50:12) Postovi: (4C)16
Spol:
Lokacija: varaždin/zagreb
|
|
[Vrh] |
|
-georges- Forumaš(ica)
Pridružen/a: 14. 06. 2010. (18:47:06) Postovi: (F)16
Spol:
|
Postano: 0:30 uto, 18. 1. 2011 Naslov: |
|
|
Osmislite algoritam i napišite odgovarajući program za sortiranje m vektora oblika: X(r)=(x1(r),...,xn(r)), r=1,..,m. Kažemo da je vektor X(j) < X(k) ako postoji i, 1 ≤ i ≤ n takav da vrijedi: xr(j) = xr(k) za sve 1 ≤ r < i i xi(j) < xi(k) (to jest, sortira se leksikografski). Nemojte uvoditi ograničenja na veličinu brojeva m i n.
Ulazni podaci: u prvom retku brojevi m i n; u svakom od idućih m redaka po n brojeva koji čine koordinate u pojedinom vektoru.
Izlazni podaci: m redaka, svaki sa po n redaka; u svakom retku nalazi se koordinatni zapis jednog vektora; vektori trebaju biti navedeni u sortiranom redoslijedu.
Na primjer, za ulazne podatke:
4 3
5 2 3
1 4 2
5 2 1
6 2 3
treba ispisati:
1 4 2
5 2 1
5 2 3
6 2 3
ako ima neka dobra duša da mi da neke smjernice jer ja uopće nemam pojma koji atp bi koristil.
i da, znam da sam se rano sjetil. ;)
Osmislite algoritam i napišite odgovarajući program za sortiranje m vektora oblika: X(r)=(x1(r),...,xn(r)), r=1,..,m. Kažemo da je vektor X(j) < X(k) ako postoji i, 1 ≤ i ≤ n takav da vrijedi: xr(j) = xr(k) za sve 1 ≤ r < i i xi(j) < xi(k) (to jest, sortira se leksikografski). Nemojte uvoditi ograničenja na veličinu brojeva m i n.
Ulazni podaci: u prvom retku brojevi m i n; u svakom od idućih m redaka po n brojeva koji čine koordinate u pojedinom vektoru.
Izlazni podaci: m redaka, svaki sa po n redaka; u svakom retku nalazi se koordinatni zapis jednog vektora; vektori trebaju biti navedeni u sortiranom redoslijedu.
Na primjer, za ulazne podatke:
4 3
5 2 3
1 4 2
5 2 1
6 2 3
treba ispisati:
1 4 2
5 2 1
5 2 3
6 2 3
ako ima neka dobra duša da mi da neke smjernice jer ja uopće nemam pojma koji atp bi koristil.
i da, znam da sam se rano sjetil.
|
|
[Vrh] |
|
kkarlo Forumaš(ica)
Pridružen/a: 19. 05. 2010. (08:43:59) Postovi: (1B2)16
Spol:
|
Postano: 21:13 sub, 17. 12. 2011 Naslov: Makar jos nije dosla... |
|
|
Nest sam poceo radit, i zapeo vec na pocetku... Pa da ne odustanem tako brzo, ak moze netko rec di je problem.
Znaci atp set, preko sortirane vezane liste.
[code:1]
typedef int elementtype;
typedef struct cell_tag{
elementtype element;
struct cell_tag *next;
}celltype;
typedef celltype *SET;
void MAKE_NULL(SET A)
{
A=(celltype*)malloc(sizeof(celltype));
A->next=NULL;
}
int MEMBER(int x, SET A)
{
SET pom=A;
while(pom->next != NULL){
if(pom->element==x)
return 1;
pom=pom->next;
}
if(pom->element==x) return 1;
return 0;
}
void INSERT(int x, SET A)
{
celltype *novi,*pom=A;
if(!MEMBER(x,A)){
novi=(celltype*)malloc(sizeof(celltype));
while(pom->next != NULL){
pom=pom->next;
}
pom->next=novi;
novi->next=NULL;
novi->element=x;
sortiraj(A);
}
}
[/code:1]
I tu mi vec steka... Prvi insert nekog broja i vec pada. Ne kuzim zasto, gledao sam gdje se srusi, i rusi se u memberu, ali nije mi jasno zasto jer prije poziva funkcije insert sam pozvao make null?
Nest sam poceo radit, i zapeo vec na pocetku... Pa da ne odustanem tako brzo, ak moze netko rec di je problem.
Znaci atp set, preko sortirane vezane liste.
Kod: |
typedef int elementtype;
typedef struct cell_tag{
elementtype element;
struct cell_tag *next;
}celltype;
typedef celltype *SET;
void MAKE_NULL(SET A)
{
A=(celltype*)malloc(sizeof(celltype));
A->next=NULL;
}
int MEMBER(int x, SET A)
{
SET pom=A;
while(pom->next != NULL){
if(pom->element==x)
return 1;
pom=pom->next;
}
if(pom->element==x) return 1;
return 0;
}
void INSERT(int x, SET A)
{
celltype *novi,*pom=A;
if(!MEMBER(x,A)){
novi=(celltype*)malloc(sizeof(celltype));
while(pom->next != NULL){
pom=pom->next;
}
pom->next=novi;
novi->next=NULL;
novi->element=x;
sortiraj(A);
}
}
|
I tu mi vec steka... Prvi insert nekog broja i vec pada. Ne kuzim zasto, gledao sam gdje se srusi, i rusi se u memberu, ali nije mi jasno zasto jer prije poziva funkcije insert sam pozvao make null?
|
|
[Vrh] |
|
ivstojic Forumaš(ica)
Pridružen/a: 20. 03. 2007. (08:52:16) Postovi: (23)16
|
|
[Vrh] |
|
kkarlo Forumaš(ica)
Pridružen/a: 19. 05. 2010. (08:43:59) Postovi: (1B2)16
Spol:
|
Postano: 21:53 sub, 17. 12. 2011 Naslov: |
|
|
[quote="ivstojic"]Problem je sto funkciji MAKE_NULL saljes pointer, a ne pointer na pointer. Ako u C-u zelis u funkciji mijenjati argument, onda saljes pointer na njega. Ti ovdje zelis mijenjati pointer tipa celltype* (zelis u njega spremiti adresu koju vraca malloc), pa funkciji moras dati pointer na to, dakle pointer na pointer.
Nesto ovako bi trebalo raditi:
[code:1]
void MAKE_NULL (SET *A)
{
*A = (celltype*) malloc(sizeof(celltype));
(*A)->next = NULL;
}
[/code:1][/quote]
Hvala. Ali i dalje mi ne radi... Mislim nisam korisito double pointere od prog2, a ni tamo nismo nest forsali double pointere, tak da bi svaka pomoc dobro dosla... Evo par pitanja:
Znači u mainu imam SET *A (sto je ustvari **celltype). I sad kad ga šaljem u MAKE_NULL kao argument, da li stavljam *A?
I da li moram prije poziva alocirat memoriju za A?
Tj. da li bi to izgledalo ovako:
SET *A;
A=(SET*)malloc(sizeof(SET));
MAKE_NULL(*A);
I dalje pitanje...
Što kada imam funkciju MEMBER u kojoj ne želim mijenjat ništa kako njoj predajem A? MEMBER(?)
Malko me zbunjuju ti double pointeri...
:?
ivstojic (napisa): | Problem je sto funkciji MAKE_NULL saljes pointer, a ne pointer na pointer. Ako u C-u zelis u funkciji mijenjati argument, onda saljes pointer na njega. Ti ovdje zelis mijenjati pointer tipa celltype* (zelis u njega spremiti adresu koju vraca malloc), pa funkciji moras dati pointer na to, dakle pointer na pointer.
Nesto ovako bi trebalo raditi:
Kod: |
void MAKE_NULL (SET *A)
{
*A = (celltype*) malloc(sizeof(celltype));
(*A)->next = NULL;
}
|
|
Hvala. Ali i dalje mi ne radi... Mislim nisam korisito double pointere od prog2, a ni tamo nismo nest forsali double pointere, tak da bi svaka pomoc dobro dosla... Evo par pitanja:
Znači u mainu imam SET *A (sto je ustvari **celltype). I sad kad ga šaljem u MAKE_NULL kao argument, da li stavljam *A?
I da li moram prije poziva alocirat memoriju za A?
Tj. da li bi to izgledalo ovako:
SET *A;
A=(SET*)malloc(sizeof(SET));
MAKE_NULL(*A);
I dalje pitanje...
Što kada imam funkciju MEMBER u kojoj ne želim mijenjat ništa kako njoj predajem A? MEMBER(?)
Malko me zbunjuju ti double pointeri...
|
|
[Vrh] |
|
ivstojic Forumaš(ica)
Pridružen/a: 20. 03. 2007. (08:52:16) Postovi: (23)16
|
Postano: 22:24 sub, 17. 12. 2011 Naslov: |
|
|
U ovom tvom primjeru bi se slao samo A (jer je tipa celltype**, a MAKE_NULL prima stvar tipa celltype**), pa bi onda radilo.
ali A mozes deklarirati i kao SET A, pa bi onda u MAKE_NULL slao adresu od A:
[code:1]
SET A;
MAKE_NULL(&A);
INSERT(3, A);
INSERT(5, A);
...
[/code:1]
Princip je isti kao kad imas int koji zelis mijenjati u funkciji -- funkcija prima pointer na int, a kad ju zoves posaljes adresu. Dvostruki pointer je samo najobicniji pointer koji pokazuje na nesto sto je takodjer pointer.
Ostalim funkcijama mozes slati samo SET A kao u funkcijama INSERT i MEMBERS u gornjem kodu, ako te funkcije nemaju potrebu mijenjati samu varijablu A. Ako one samo mijenjaju neke pointere dalje u vezanoj listi, ne trebas im slati pointer na A.
U ovom tvom primjeru bi se slao samo A (jer je tipa celltype**, a MAKE_NULL prima stvar tipa celltype**), pa bi onda radilo.
ali A mozes deklarirati i kao SET A, pa bi onda u MAKE_NULL slao adresu od A:
Kod: |
SET A;
MAKE_NULL(&A);
INSERT(3, A);
INSERT(5, A);
...
|
Princip je isti kao kad imas int koji zelis mijenjati u funkciji – funkcija prima pointer na int, a kad ju zoves posaljes adresu. Dvostruki pointer je samo najobicniji pointer koji pokazuje na nesto sto je takodjer pointer.
Ostalim funkcijama mozes slati samo SET A kao u funkcijama INSERT i MEMBERS u gornjem kodu, ako te funkcije nemaju potrebu mijenjati samu varijablu A. Ako one samo mijenjaju neke pointere dalje u vezanoj listi, ne trebas im slati pointer na A.
|
|
[Vrh] |
|
kkarlo Forumaš(ica)
Pridružen/a: 19. 05. 2010. (08:43:59) Postovi: (1B2)16
Spol:
|
Postano: 9:46 ned, 18. 12. 2011 Naslov: |
|
|
[quote="ivstojic"]U ovom tvom primjeru bi se slao samo A (jer je tipa celltype**, a MAKE_NULL prima stvar tipa celltype**), pa bi onda radilo.
ali A mozes deklarirati i kao SET A, pa bi onda u MAKE_NULL slao adresu od A:
[code:1]
SET A;
MAKE_NULL(&A);
INSERT(3, A);
INSERT(5, A);
...
[/code:1]
Princip je isti kao kad imas int koji zelis mijenjati u funkciji -- funkcija prima pointer na int, a kad ju zoves posaljes adresu. Dvostruki pointer je samo najobicniji pointer koji pokazuje na nesto sto je takodjer pointer.
Ostalim funkcijama mozes slati samo SET A kao u funkcijama INSERT i MEMBERS u gornjem kodu, ako te funkcije nemaju potrebu mijenjati samu varijablu A. Ako one samo mijenjaju neke pointere dalje u vezanoj listi, ne trebas im slati pointer na A.[/quote]
Hvala, uspio sam!
:D
ivstojic (napisa): | U ovom tvom primjeru bi se slao samo A (jer je tipa celltype**, a MAKE_NULL prima stvar tipa celltype**), pa bi onda radilo.
ali A mozes deklarirati i kao SET A, pa bi onda u MAKE_NULL slao adresu od A:
Kod: |
SET A;
MAKE_NULL(&A);
INSERT(3, A);
INSERT(5, A);
...
|
Princip je isti kao kad imas int koji zelis mijenjati u funkciji – funkcija prima pointer na int, a kad ju zoves posaljes adresu. Dvostruki pointer je samo najobicniji pointer koji pokazuje na nesto sto je takodjer pointer.
Ostalim funkcijama mozes slati samo SET A kao u funkcijama INSERT i MEMBERS u gornjem kodu, ako te funkcije nemaju potrebu mijenjati samu varijablu A. Ako one samo mijenjaju neke pointere dalje u vezanoj listi, ne trebas im slati pointer na A. |
Hvala, uspio sam!
|
|
[Vrh] |
|
kkarlo Forumaš(ica)
Pridružen/a: 19. 05. 2010. (08:43:59) Postovi: (1B2)16
Spol:
|
|
[Vrh] |
|
kkarlo Forumaš(ica)
Pridružen/a: 19. 05. 2010. (08:43:59) Postovi: (1B2)16
Spol:
|
|
[Vrh] |
|
kkarlo Forumaš(ica)
Pridružen/a: 19. 05. 2010. (08:43:59) Postovi: (1B2)16
Spol:
|
Postano: 18:24 sri, 11. 1. 2012 Naslov: |
|
|
Moj zadatak:
Implementirajte a.t.p. SET pomoću nesortirane vezane liste (veze u listi su uspostavljene pomoću pointera) i pretpostavku da skupovi sadrže podatke tipa char.
Ulazni podaci: dva niza znakova koji predstavljaju elemente dvaju skupova A i B.
Izlazni podaci: 5 nizova znakova, svaki u jednom redu – unija, presjek, razlika A∖ B, maximalni element skupa A; zadnji string je DA ako je A⊆ B, a NE u protivnom. Elemente skupova možete ispisati u bilo kojem redoslijedu, ali svaki se mora javljati točno jednom!
I sad me muci ako imam A=SONJA i B=ANA, da li u uniju idu oba A ili samo jedno?
Unija=SONJA ili SONJAA ??
Pretpostavljam da je ovo drugo, ali da provjerim...
Jer ako je prvo tocno, onda ako je A=KOKO i B=KOKOLO, AUB bi imala manje elemenata od samog B.
I jel presjek onda isto KOKO kod ovog zadnjeg primjera?
Moj zadatak:
Implementirajte a.t.p. SET pomoću nesortirane vezane liste (veze u listi su uspostavljene pomoću pointera) i pretpostavku da skupovi sadrže podatke tipa char.
Ulazni podaci: dva niza znakova koji predstavljaju elemente dvaju skupova A i B.
Izlazni podaci: 5 nizova znakova, svaki u jednom redu – unija, presjek, razlika A∖ B, maximalni element skupa A; zadnji string je DA ako je A⊆ B, a NE u protivnom. Elemente skupova možete ispisati u bilo kojem redoslijedu, ali svaki se mora javljati točno jednom!
I sad me muci ako imam A=SONJA i B=ANA, da li u uniju idu oba A ili samo jedno?
Unija=SONJA ili SONJAA ??
Pretpostavljam da je ovo drugo, ali da provjerim...
Jer ako je prvo tocno, onda ako je A=KOKO i B=KOKOLO, AUB bi imala manje elemenata od samog B.
I jel presjek onda isto KOKO kod ovog zadnjeg primjera?
|
|
[Vrh] |
|
@na Forumaš(ica)
Pridružen/a: 16. 10. 2011. (13:29:26) Postovi: (14)16
Spol:
|
Postano: 20:18 sri, 11. 1. 2012 Naslov: |
|
|
pa piše ti: "Elemente skupova možete ispisati u bilo kojem redoslijedu, ali svaki se mora javljati [b]točno jednom[/b]!"
znači..unija ti je npr. od SONJA i ANA --> SONJA, tj. od KOKO i KOKOLO --> KOL
isto tako ako trebaš presjek od prvog će biti samo AN, odnosno od drugog KO
...tako sam barem ja skužila...da si dobio [b]MULTISET [/b]onda bi se u uniji i presjeku brojalo koliko je kojih slova pa bi ih sve morao ispisati..
inače, ovdje kako prolaziš po elementima jednog i drugog skupa moraš provjeriti nalazi li se taj element već u skupu, ako da - [u]ne [/u]ubacuješ ga više ;)
pa piše ti: "Elemente skupova možete ispisati u bilo kojem redoslijedu, ali svaki se mora javljati točno jednom!"
znači..unija ti je npr. od SONJA i ANA → SONJA, tj. od KOKO i KOKOLO → KOL
isto tako ako trebaš presjek od prvog će biti samo AN, odnosno od drugog KO
...tako sam barem ja skužila...da si dobio MULTISET onda bi se u uniji i presjeku brojalo koliko je kojih slova pa bi ih sve morao ispisati..
inače, ovdje kako prolaziš po elementima jednog i drugog skupa moraš provjeriti nalazi li se taj element već u skupu, ako da - ne ubacuješ ga više
|
|
[Vrh] |
|
kkarlo Forumaš(ica)
Pridružen/a: 19. 05. 2010. (08:43:59) Postovi: (1B2)16
Spol:
|
Postano: 20:30 sri, 11. 1. 2012 Naslov: |
|
|
[quote="@na"]pa piše ti: "Elemente skupova možete ispisati u bilo kojem redoslijedu, ali svaki se mora javljati [b]točno jednom[/b]!"
znači..unija ti je npr. od SONJA i ANA --> SONJA, tj. od KOKO i KOKOLO --> KOL
isto tako ako trebaš presjek od prvog će biti samo AN, odnosno od drugog KO
...tako sam barem ja skužila...da si dobio [b]MULTISET [/b]onda bi se u uniji i presjeku brojalo koliko je kojih slova pa bi ih sve morao ispisati..
inače, ovdje kako prolaziš po elementima jednog i drugog skupa moraš provjeriti nalazi li se taj element već u skupu, ako da - [u]ne [/u]ubacuješ ga više ;)[/quote]
Ma napravio sam ja vec na oba nacina...
Samo pitam s kojim da se pojavim na predaji zadace...
:lol:
Ali, hvala.
@na (napisa): | pa piše ti: "Elemente skupova možete ispisati u bilo kojem redoslijedu, ali svaki se mora javljati točno jednom!"
znači..unija ti je npr. od SONJA i ANA → SONJA, tj. od KOKO i KOKOLO → KOL
isto tako ako trebaš presjek od prvog će biti samo AN, odnosno od drugog KO
...tako sam barem ja skužila...da si dobio MULTISET onda bi se u uniji i presjeku brojalo koliko je kojih slova pa bi ih sve morao ispisati..
inače, ovdje kako prolaziš po elementima jednog i drugog skupa moraš provjeriti nalazi li se taj element već u skupu, ako da - ne ubacuješ ga više |
Ma napravio sam ja vec na oba nacina...
Samo pitam s kojim da se pojavim na predaji zadace...
Ali, hvala.
|
|
[Vrh] |
|
minora665 Forumaš(ica)
Pridružen/a: 10. 02. 2010. (22:52:01) Postovi: (1F)16
|
|
[Vrh] |
|
kkarlo Forumaš(ica)
Pridružen/a: 19. 05. 2010. (08:43:59) Postovi: (1B2)16
Spol:
|
Postano: 21:17 sri, 11. 1. 2012 Naslov: |
|
|
[quote="minora665"]Dobila sam zadatak (između ostalog) implementirati TREE pomoću polja na temelju veze čvor - prvo dijete - slijedeći brat. Nije mi jasno sto je "globalni kursor avail" koji se koristi u skripti u poglavlju o toj implementaciji. Dakle ako itko zna please sto je to ne kuzim jel to nesto u c-u, moram li ga ja definirati, kako? Kuzim kako ga koristit u implementaciji (on je prvi slobodni node za cvor koji stvaramo) ali ne znam kako njega samog da deklariram implementiram ili sto vec trebam.... :?[/quote]
Trebas ga ti definirat, u to sam siguran, a kako ga definirat, e u to nisam siguran.
Mozda ovako:
node avail;
u njega spremis prvog slobodnog, a onda kako pise u skripti, tom slobodnom u next_sibling stavis node od slijedeceg slobodnog, pa slijedecem opet...itd. a zadnjem stavis -1.(tj.svakom kojeg ubacis stavis next_sibling=-1, pa ako ima jos slobodnih onda mjenjas)
Naravno moras pazit kako uzmes neki koji je bio slobodan da kad ga maknes iz liste, da onom prije njega u next_sibling stavis next_sibling od ovog kojeg si iskoristila.
Naravno, nisam siguran da li je to tocno, ali mozes probat.
minora665 (napisa): | Dobila sam zadatak (između ostalog) implementirati TREE pomoću polja na temelju veze čvor - prvo dijete - slijedeći brat. Nije mi jasno sto je "globalni kursor avail" koji se koristi u skripti u poglavlju o toj implementaciji. Dakle ako itko zna please sto je to ne kuzim jel to nesto u c-u, moram li ga ja definirati, kako? Kuzim kako ga koristit u implementaciji (on je prvi slobodni node za cvor koji stvaramo) ali ne znam kako njega samog da deklariram implementiram ili sto vec trebam.... |
Trebas ga ti definirat, u to sam siguran, a kako ga definirat, e u to nisam siguran.
Mozda ovako:
node avail;
u njega spremis prvog slobodnog, a onda kako pise u skripti, tom slobodnom u next_sibling stavis node od slijedeceg slobodnog, pa slijedecem opet...itd. a zadnjem stavis -1.(tj.svakom kojeg ubacis stavis next_sibling=-1, pa ako ima jos slobodnih onda mjenjas)
Naravno moras pazit kako uzmes neki koji je bio slobodan da kad ga maknes iz liste, da onom prije njega u next_sibling stavis next_sibling od ovog kojeg si iskoristila.
Naravno, nisam siguran da li je to tocno, ali mozes probat.
|
|
[Vrh] |
|
michelangelo Forumaš(ica)
Pridružen/a: 25. 06. 2009. (22:59:23) Postovi: (69)16
Spol:
|
|
[Vrh] |
|
jabuka Forumaš(ica)
Pridružen/a: 21. 11. 2009. (15:53:14) Postovi: (7C)16
|
Postano: 18:07 pet, 13. 1. 2012 Naslov: |
|
|
ako bi mi mogao netko dati bilo kakav hint za zadatak, stvarno ne znam ni od kud poceti :(
Sažmite m silazno sortiranih listi pomoću hrpe. Hrpa je prikazana pomoću pointera, a lista je vezana lista i veze su prikazane pomoću kursora. Pretpostavimo da lista sadrži elemente tipa char. Ne trebate implementirati sve funkcije iz atp LIST, nego samo one koje su vam potrebne u zadatku. Pretpostavite da ukupno ima najviše 10 lista, svaka ima najviše po 20 elemenata. Ideja: u definiciji hrpe zamijenite "≤" sa "≥".
Ulazni podaci: broj m, pa m sortiranih nizova znakova koji čine elemente sortiranih listi koje treba spojiti.
Izlazni podaci: nakon svake operacije ubacivanja i izbacivanja u hrpu ispisujte što se i iz koje liste ubacuje/izbacuje; na kraju ispišite i cijelu sažetu sortiranu listu.
Na primjer, za ulazne podatke:
3 HA UJ KIH
treba ispisati:
ubacujem H iz liste 1
ubacujem U iz liste 2
ubacujem K iz liste 3
izbacujem U iz liste 2
ubacujem J iz liste 2
izbacujem K iz liste 3
ubacujem I iz liste 3
izbacujem J iz liste 2
izbacujem I iz liste 3
ubacujem H iz liste 3
izbacujem H iz liste 1
ubacujem A iz liste 1
izbacujem H iz liste 3
izbacujem A iz liste 1
sortirana lista: UKJIHHA
ako bi mi mogao netko dati bilo kakav hint za zadatak, stvarno ne znam ni od kud poceti
Sažmite m silazno sortiranih listi pomoću hrpe. Hrpa je prikazana pomoću pointera, a lista je vezana lista i veze su prikazane pomoću kursora. Pretpostavimo da lista sadrži elemente tipa char. Ne trebate implementirati sve funkcije iz atp LIST, nego samo one koje su vam potrebne u zadatku. Pretpostavite da ukupno ima najviše 10 lista, svaka ima najviše po 20 elemenata. Ideja: u definiciji hrpe zamijenite "≤" sa "≥".
Ulazni podaci: broj m, pa m sortiranih nizova znakova koji čine elemente sortiranih listi koje treba spojiti.
Izlazni podaci: nakon svake operacije ubacivanja i izbacivanja u hrpu ispisujte što se i iz koje liste ubacuje/izbacuje; na kraju ispišite i cijelu sažetu sortiranu listu.
Na primjer, za ulazne podatke:
3 HA UJ KIH
treba ispisati:
ubacujem H iz liste 1
ubacujem U iz liste 2
ubacujem K iz liste 3
izbacujem U iz liste 2
ubacujem J iz liste 2
izbacujem K iz liste 3
ubacujem I iz liste 3
izbacujem J iz liste 2
izbacujem I iz liste 3
ubacujem H iz liste 3
izbacujem H iz liste 1
ubacujem A iz liste 1
izbacujem H iz liste 3
izbacujem A iz liste 1
sortirana lista: UKJIHHA
|
|
[Vrh] |
|
|