» »

[C] Obrni sklad

[C] Obrni sklad

aceton ::

kako bi obrnila seznam, natančneje sklad (deluje po principu FIFO)
koda:
struct element{
       int vrednost;
       struct element *next;
       };
struct element *prvi;

//vstavljanje v sklad
void Push(int e){
     struct element *novi, *tmp;
     novi=(struct element*)malloc(sizeof(struct element));
     
     if(prvi==NULL){
        novi->vrednost=e;
        novi->next=NULL;
        prvi=novi;}
     else{
        tmp=prvi;
        novi->vrednost=e;
        novi->next=tmp;
        prvi=novi;}
     }
     
//vrne element, ki je na vrhu skada
void Pop(struct element *p){
     struct element *tmp;
     tmp=p;
     printf("Vrhnji element skada je: %d", tmp->vrednost);
     printf("\n");
     }

//Izbrisi prvi element
void Brisi(struct element *p){
     struct element *tmp;
     tmp=prvi;
     prvi=prvi->next;
     free(tmp);
    
     }
     

technolog ::

Inicializiraš sklad številka 2, potem pa izvajaš:

1. pop prvega sklada, dobiš vrhnji element X
2. push X na sklad številka dva

To ponavljaš, dokler ne izprazniš prvega sklada (t.j. preložiš vseh elementov).

aceton ::

in posledično je potrebno uporabiti tudi funkcijo brisi (prvega elementa v prvem skladu)
bom probala in upam da mi rata to idejo spravt v kodo

mallard ::

LIFO, ne FIFO.

aceton ::

Ja LIFO..delam še program za vrste pa sm mal zamešala..načeloma je pa princip takšen kot je napisan gor ane

technolog ::

FILO.

aceton ::

sklad deluje po principu first in first out..torej FIFO :)
še vedno pa se ubadam s programom, ki obrne sklad..
torej pomoč več kot dobrodošla

mallard ::

aceton je izjavil:

sklad deluje po principu first in first out..torej FIFO :)


To se pravi, da ti drva iz skladovnice spodej ven vlečeš?

Še enkrat, sklad deluje po principu "first in, last out - FILO" (ali "last in, first out - LIFO", če hočeš).
Vrsta deluje po principu FIFO.

Zdej se pa prosim odloči, kaj boš obračala, vrsto ali sklad?
(ne, nisem šel brat tvoje kode)

aceton ::

torej obračala bom po principu "last in, first out - LIFO" sm se odločla :)

kuall ::

tukaj imaš grafično predstavitev za lažje predstavljanje:
http://www.cmpe.boun.edu.tr/~akin/cmpe2...

LIFO: zbrišeš lahko samo nazadnje dodan element
FIFO: zbrišeš lahko samo prvi dodan element.

osnovna značilnost sklada je, da ko ga hočeš skopirat v drug sklad se vrstni njegovih elementov obrne. torej samo spomni se, kako bi najenostavneje skopirala en sklad v drugega in imaš rešitev.

napiši funkcijo element *skladB = kopirajSklad (element *skladA)
tvoja funkcija Push(int e) bi morala imeti dva argumenta, da bo neodvisna:
void Push(int e, element *sklad)

Zgodovina sprememb…

  • spremenilo: kuall ()

Invictus ::

aceton je izjavil:

sklad deluje po principu first in first out..torej FIFO :)
še vedno pa se ubadam s programom, ki obrne sklad..
torej pomoč več kot dobrodošla

Najprej se nauči uporabljati google ...

Pravilni odgovor na tvoj problem je bil pa že prvi.

Ampak bolje neumno vprašati kot neumne ostati ...
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

Zgodovina sprememb…

  • spremenil: Invictus ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Pravilo zadrge v križiščih, ko je gneča (strani: 1 2 3 )

Oddelek: Na cesti
11419647 (16226) Mavrik
»

Java-razlaga

Oddelek: Šola
9934 (769) lebdim
»

C++ programi

Oddelek: Programiranje
72525 (2121) ERGY
»

[C] Povezani seznami in kazalci

Oddelek: Programiranje
242569 (2136) Good Guy
»

[C] Narascajoce sortiranje linearnega seznama

Oddelek: Programiranje
71863 (1752) Jebiveter

Več podobnih tem