Struktury danych/Stosy/Przykładowe implementacje
Wygląd
Python
[edytuj]Do emulacji działania stosu wykorzystamy listę i dwie jej metody: append() oraz pop().
stos = [] # tworzymy listę
stos.append(1) # metoda append() działa identycznie jak opisywany push()
stos.append(2)
stos.append(3)
# w tym momencie na stosie są 3 elementy
print "Na stosie sa " + str(len(stos)) + " elementy"
x = stos.pop() # zdejmujemy przed chwilą dodane elementy ze stosu
y = stos.pop()
z = stos.pop()
C
[edytuj]#define STOS_MAX 10 // stos 10-elementowy
int stos[STOS_MAX];
int szczyt=0;
push(element) {
if(szczyt < STOS_MAX) {
/* wrzuć na stos */
stos[szczyt] = element;
szczyt++;
}
else {
/* stos jest już pełny */
...
}
}
pop() {
if(szczyt != 0) {
/* zdejmij ze stosu */
szczyt--;
return stos[szczyt];
}
else {
/* stos jest już pusty */
...
}
}
C++
[edytuj]class Stos<E> {
Object[] tablica; //tablica elementow stosu
licznik = 0;
public Stos(int rozmiar) {
this.tablica = new Object[rozmiar]; // tworzenie tablicy na elementy
}
public void poloz(E wartosc) {
this.tablica[licznik] = wartosc;
this.licznik = this.licznik + 1;
};
public E sciagnij() {
this.licznik = this.licznik - 1;
return (E) this.tablica[this.licznik];
};
};
Java
[edytuj]class Stos {
private int[] wektor;
private int top;
public Stos() {
this(10);
}
public Stos(int rozmiar) {
wektor = new int[rozmiar];
top = -1;
}
public void push(int element) {
wektor[++top] = element;
}
public int pop() {
return wektor[top--];
}
public boolean czyPusty() {
return (top == -1);
}
public boolean czyPelny() {
return (top == wektor.length);
}
public int peek() {
return wektor[top];
}
public void wyswietl() {
for(int i = 0; i <= top; i++)
System.out.print(wektor[i] + " ");
System.out.println();
}
public int rozmiar() {
return top + 1;
}
}