Ahoj, řeším takovej problémek. Vytvářím kruhový seznam a implementuji to v Javě. Teoreticky je mi jasný jak to funguje, ale nějak se mi nedaří vyřešit to jakým způsobem zjistím že je objekt poslední a v tom případě bude ukazatel aktualni.dalsi na první objekt. Pokud by nebyl kruhový tak to je v pohodě, protože posledni by bylo aktualni.dalsi == null. Ale jak to udělat u kruhového. Snad je to dostatečně pochopitelné o co mi jde. Díky moc za pomoc.
Fórum › Java
Kruhový seznam
Možností je víc. Do té struktury si přidáš flag, kterým si konec označíš ... v extra proměnné si budeš uchovávat pozici posledního ... nebo u toho svého objektu nějakých způsobem rozlišíš, že je "prázdný" a tento prázdný objekt budeš používat jako zarážku (tj. vždy tam bude jeden) ....
Tak jsem to zatím vyřešil tak že jsem si udělalt proměnou Zacatek, Nynejsi a Konec. Pokud vkladám v seznamu za prvek tak je to v poho. Problem mam u obousměrneho seznamu. Tam mi to občas děla nějaky brigule. Přemejšlým jestli náhodou ještě nemusím mít proměnou předchozi. Jinak samozřejmě v objedktu mam dalsi a predchozi, ale prochazim pomoci iteratoru, kde mam ty 3 vyše zmíněné proměné
Neviem, či celkom rozumiem, čo presne sa pokúšaš dosiahnuť a aké operácie má ta štruktúra vedieť.
Ja by som to riešil tak že by som si vytvoril pole konštantnej veľkosti pre ukladanie daných objektov.
private Object[] data = new Object[N];
a potom dve premenné:private int read = 0; // index z ktorého sa najbližšie bude čítať
private int write = 0; // index na ktorý sa najbližšie bude písať
no a metódy get a put: na citanie a zapisovanie do zoznamu:public Object get() {
if (isEmpty()) throw EmptyException();
try {
return data[read];
} finaly {
read++;
if (read==data.length) read = 0;
}
}
public void put(Object o) throws FullException {
if (isFull()) throw FullException();
data[write] = o;
write++;
if (write==data.length) write = 0;
}
public boolean isEmpty() {
return return read == write;
}
public boolean isFull() {
// todo...
}
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
[Algoritmus - rebus] Kruhový seznam — založil Shaolin
Kruhový spojový seznam - přečetní na určitém indexu — založil dryXXX
Kruhovy zoznam — založil tom
C++ Seznam — založil _Daffy_
Moderátoři diskuze