Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

LIFO liste i stek

[es] :: C/C++ programiranje :: LIFO liste i stek

[ Pregleda: 1916 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Sarcom
student

Član broj: 241536
Poruke: 3
77.238.222.*



Profil

icon LIFO liste i stek24.09.2010. u 10:41 - pre 165 meseci
Pozdrav
Ako moze pomoc oko ovoga zadatka.
Napravite program u C++ koji sa tastature učitava 30 cijelih brojeva u dvije LIFO liste (prva lista neka se zove L1, a druga lista neka se zove L2). Ako je broj djeljiv sa 3 onda se učitava u listu L1, a ako nije djeljiv sa 3 onda se učitava u listu L2. Nakon učitavanja program treba liste L1 i L2 spojiti tako da se na listu L2 nadoveže lista L1. Na kraju se se sadržaj rezultirajuća liste koja se dobije spajanjem treba ispisati na monitoru.
Naime znam kako napraviti cvor u LIFO povezanim listama i znam funkcije za stek,ali ne znam kako to dvoje da objedinim i uradim ovaj zadatak?
 
Odgovor na temu

ik0
Ivan Cekov
Information System Developer
Planning Authority Malta
Floriana, Malta

Član broj: 222385
Poruke: 158
92.55.110.*



+3 Profil

icon Re: LIFO liste i stek24.09.2010. u 12:07 - pre 165 meseci
Ako me dobro pamcenje sluzi LIFO je ustvari "magacin"...evo nesta sta sam radio neki seminarski rad...mozda ti pomogne...

Code:


#include <iostream>
#include <alloc>
#define LIMIT 100

typedef struct
{
   int info;
}stackrecord;

typedef struct
{
   stackrecord stackarray [LIMIT];
   int top;
}stack;

stack s;
stackrecord r;

void setstack (ps)
/* Go inicijalizira magacinot s da e prazen */
    stack *ps;
{
   (*ps).top = -1;
}

int empty (ps)
/* Vrakja true samo ako magacinot e prazen */
   stack *ps;
{
   return ((*ps).top == -1);
}

void push (pnewrecord,ps)
/* Go vmetnuva zapisot newrecord na vrvot na magacinot s */
stackrecord *pnewrecord;
stack *ps;
{
if ((*ps).top == (LIMIT - 1))
   { cout<< "overflow"<<endl; }
else
   {
     (*ps).top = (*ps).top + 1;
     (*ps).stackarray[(*ps).top].info = (*pnewrecord).info;
   }
}

void pop(ps,pvalue)
/* Ja kopira sodrzinata na top zapisot od magacinot s
vo vrednost (value) i go otstranuva zapisot od magacinot */
stack *ps;
stackrecord *pvalue;
{
if(empty(ps))
    {  cout << "underflow"<<endl; }
else
    {
       (*pvalue).info = (*ps).stackarray[(*ps).top].info;
       (*ps).top = (*ps).top - 1;
    }
}

int main()
{           
  int i;
  stackrecord *sr;
  stack *ps1;
  sr=(stackrecord *)malloc(sizeof(r));
  ps1=(stack *)malloc(sizeof(s));

  (*sr).info=1;
  setstack(ps1);
  push(sr,ps1);
  (*sr).info=2;
  push(sr,ps1);
  for (i=(*ps1).top; i>-1; i--)
      {
         cout<<(*ps1).stackarray[i].info <<endl;
      }
  pop(ps1,sr);
  for (i=(*ps1).top; i>-1; i--)
      {
         cout<<(*ps1).stackarray[i].info <<endl;
      }

return 0;
}


Kako mislis da ih spois da dobijes novu LIFO listu? Evo ti od ovaj primer vidi nesta ako mozes da izvuces...
Kude tumbe i tri bandere
 
Odgovor na temu

Sarcom
student

Član broj: 241536
Poruke: 3
77.238.222.*



Profil

icon Re: LIFO liste i stek24.09.2010. u 12:57 - pre 165 meseci
thx, ima ovdje nekih stvari koje ce mi pomoci.
Pa mislim na to da u steku imamo funkcije za ubacivanje,izbacivanje i ostale operacije sa elementima i ne znam kako te funkcije da ukomponujem sa LIFO listama.
 
Odgovor na temu

ik0
Ivan Cekov
Information System Developer
Planning Authority Malta
Floriana, Malta

Član broj: 222385
Poruke: 158
92.55.110.*



+3 Profil

icon Re: LIFO liste i stek24.09.2010. u 13:37 - pre 165 meseci
ja bi to uranio ovako....upisao bih brojeve uneseni preko tastature u nizu...onda bi proveravao svaki broj od nize dali je deljiv sa 3 ako je deljiv zovem funkciju "push"i upisujem ga u L1 ako nije u L2...a jer nerazumem sta si htio reci sa to da spois ta dva magacina, ja bi to uradio tako da cu uraditi treci magacin de bi smestao vredoste jedan po jedan od oba magacina...Kako da ih ukoponujes...valjda imas neko predavanje :) procitaj...ne znam kako da ti objasnim to...a mesto da koristis te funkcie ima i gotovih bibljoteka...ali ako vec moras to je vec drugo...
Kude tumbe i tri bandere
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.dynamic.sbb.rs.



+2789 Profil

icon Re: LIFO liste i stek24.09.2010. u 17:06 - pre 165 meseci
Citat:
Sarcom: Pa mislim na to da u steku imamo funkcije za ubacivanje,izbacivanje i ostale operacije sa elementima i ne znam kako te funkcije da ukomponujem sa LIFO listama.


stek = LIFO lista.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

[es] :: C/C++ programiranje :: LIFO liste i stek

[ Pregleda: 1916 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.