Stos jest listą jednokierunkową, chyba tak??? Tylko nie ma dostępu do wszystkich elementów???
o_O?
Stos to abstrakcyjny rodzaj kontenera na dane. Lista jednokierunkowa to opis implementacji kontenera
Można zaimplementować stos jako listę jednokierunkową i zwykle się tak robi, ale można też zaimplementować go jako tablicę jeśli ktoś ma taki kaprys.
Masz dostęp do wszystkich elementów ale sekwencyjny o czasie dostępu O(n).
Widzę że to ogarniasz bo mam klasę ze stosem:
import java.util.*;
public interface IStos {
class Element{
// klasa wewnetrzna - element stosu
int dane;
Element nastepny;
public Element(int x, Element n)
{
dane=x;
nastepny=n;
}
public Element getNext(){
return nastepny;
}
public int getWartosc(){
return dane;
}
}
public class Stos
{
Element start;
Stos(){
start=null;
}
public Element getStart(){
return start;
}
public void push(int i) // dodaje i na stos
{
Element temp = new Element(i,start);
start=temp;
}
public void pop()
{
if(start!=null){
start = start.getNext();
} else {
System.out.println("Stos jest pusty");
}
}
public int peek()
{
return start.getWartosc();
}
public boolean isEmpty()
{
if(start!=null) return false;
else return true;
}
public void print()
{
if(start!=null){
Element temp = start;
while(temp!=null){
System.out.print(temp.getWartosc() + " ");
temp=temp.getNext();
}
System.out.println();
} else {
System.out.println("Stos jest pusty");
}
}
public void clear()
{
while(start!=null)
{
pop();
}
}
public static void main(String[] args)
{
int j;
System.out.println("Podaj element na stos: ");
Scanner wp = new Scanner(System.in);
j = wp.nextInt();
Stos z = new Stos();
z.push(j);
z.push(24);
z.print();
System.out.println("Wierzchołek: ");
System.out.println(z.peek());
}
}
}
Czy to mogę przerobić na listę??? Wydaje mi się, że tak.
Sam robiłem tą klasę więc może być coś źle.
A lista dwukierunkowa to taka która wczytuje od początku i od końca, tak ??? Mam jeszcze takie pytanie czy w programowaniu np. gier bardzo to się przydaje czy raczej można bez tego się obejść.
znaczy się że mogę zapisywać od początku i od końca
W programowaniu gier możesz się bawić wbudowanymi kontenerami języka zamiast ręcznie implementować struktury danych ;) Chociaż lista pewnie będzie szybciej działać.
Lista dwukierunkowa to taka, w której każdy element ma wskaźnik na poprzedni element oraz wskaźnik na następny element. Lista jednokierunkowa to taka, w której każdy element ma wskaźnik tylko na następny element.
ok, dzięki , jesteś wielki