Poslao: 24 Jun 2012 16:34
|
offline
- whisper
- Građanin
- Pridružio: 08 Avg 2011
- Poruke: 59
|
Implementirati funkciju Cvor* prebaci (int *niz, int d) koja će generisati stek na osnovu datih
elemenata u nizu, te vratiti memorijsku adresu prvog čvora steka. Struktura čvora steka je
sljedeća:
struct Cvor
{
int broj;
Cvor* sljedeci;
Cvor(){sljedeci = NULL;}
};
U zadatku neophodno je implementirati funkciju void push(Cvor* &glava, Cvor* novi)
te je koristiti tokom generisanja steka.
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 24 Jun 2012 17:27
|
offline
- Srki_82
- Moderator foruma
- Srđan Tot
- Am I evil? I am man, yes I am.
- Pridružio: 12 Jul 2005
- Poruke: 2483
- Gde živiš: Ljubljana
|
Fin zadatak za učenje jezika. Nisi napisao šta ti predstavlja problem u tom zadatku pa da ti pomognemo
|
|
|
|
Poslao: 24 Jun 2012 17:46
|
offline
- whisper
- Građanin
- Pridružio: 08 Avg 2011
- Poruke: 59
|
Napisano: 24 Jun 2012 17:38
Ja sam jos pocetnik pa bih zamolio nekog ako moze da ispise program na svoj nacin da vidim kako bi to funkcionisalo
Dopuna: 24 Jun 2012 17:46
evo programa ali imam imam neku gresku u petlji
#include<iostream>
using namespace std;
struct Cvor{
int broj;
Cvor* sljedeci;
Cvor(){sljedeci = NULL;}
};
void push(Cvor* &glava, Cvor* novi){
if(glava == NULL)
glava = novi;
else{
novi->sljedeci=glava;
glava = novi;}
}
Cvor* prebaci(int* niz, int d){
Cvor* glava = NULL;
Cvor* novi = new Cvor();
for(int i=0;i<d;i++){
novi->broj = niz[i];
push(glava, novi);}
return glava;
}
int main(){
int d;
cout << "Unesi duzinu niza: ";
cin >> d;
int* niz = new int[d];
cout << "Unesi clanove niza!" << endl;
for(int i=0;i<d;i++)
{cin >> niz[i];}
Cvor* a= prebaci(niz, d);
cout << "Memorijska adresa je: " << a << endl;
}
|
|
|
|
Poslao: 24 Jun 2012 18:24
|
offline
- Srki_82
- Moderator foruma
- Srđan Tot
- Am I evil? I am man, yes I am.
- Pridružio: 12 Jul 2005
- Poruke: 2483
- Gde živiš: Ljubljana
|
Taj kod koji si postavio radi fino. Iskompajlira se bez greške, na brzaka sam pogledao kod, deluje da je dobar, na kraju ispiše adresu... ne vidim nikakav problem
|
|
|
|
Poslao: 24 Jun 2012 21:35
|
offline
- clzola
- Građanin
- Pridružio: 10 Mar 2009
- Poruke: 101
- Gde živiš: Podgorica
|
Evo kako bih ja napravio stack i ovu funkciju da ti vrati memorijsku lokaciju prvog cvora steka
#include <cstdio>
struct node {
int info;
struct node* next;
};
void push(struct node* &S, int info) {
struct node* P = new struct node;
P->info = info;
P->next = S;
S = P;
};
int pop(struct node* &S) {
struct node *P;
P = S;
S = S->next;
int info = P->info;
delete P;
return info;
}
bool isEmpty(struct node *S)
{
return (S == NULL);
}
struct node* Prebaci( int* niz, int d ) {
struct node* stack = NULL;
for( int i=0; i<d; i++ )
push(stack, niz[i]);
return stack;
}
int main()
{
int niz[5] = {0, 1, 2, 3, 4};
struct node* stack = Prebaci(niz, 5);
while( !isEmpty(stack) )
printf("%d ", pop(stack));
return 0;
}
|
|
|
|