Dobrý den vespolek, řeším linked list - nacházím se někde uvnitř (např. tři nody od začátku a pět nodů od konce) . Nemůžu přijít na to, jak se přesunu k další nodě (nebo předchozí). Metody Next a Previous fungují jen u první a poslední. Poradí někdo prosím?
Fórum › .NET
Linked list next node
Datum = seznam.last.value.nDatum
//a teď by mělo být něco jako
Datum2 = seznam.last.previous.value.nDatum
Datum3 = seznam.last.previous.previous.value.nDatum
//A když se nacházím kdekoliv na tom link listu neexistuje něco jako
DatumX = seznam.aktualniNoda.value.nDatum
DatumY = seznam.aktualniNoda.next.value.nDatum
Omlouvám se a celé toto vlákno beru zpět. Ukazuje se, že jsem naprosto nepochopil princip vytváření a pak přecházení z uzlu do uzlu. Učím se c# jako úplný samouk bez lektora a někdy holt hlava vymýšlí nesmysly. S tím, jak pořád plavu v oop je to někdy kombinace k vzteku. Konstrukce o kterou mi šlo:
LinkedList<Zaznam> zaznamy = new LinkedList<Zaznam>();
LinkedListNode<Zaznam> aktualniZaznamUzel = zaznamy.First;
Zaznam zaznam = VytvorNovyZaznam();
static Zaznam VytvorNovyZaznam()
{
// získání data a textu
return new Zaznam(datum, text)
}
potom už se můžu posouvat mezi nodami
aktualniZaznamUzel = aktualniZaznamUzel.Next;
Ještě jednou díky za snahu mi pomoct. Mám chuť to vzdát....
Vytváří nové nody - každá noda je jeden záznam. Je i to špatně?
#8 KarlosCz1979
Hlavně z ní není patrné, kde bere parametry datum a text. Jsou případy, kdy taková funkce (neříkám tomu metoda, protože je statická) se hodí například pro implementaci vzoru Factory.
Ok tak já to vezmu podrobně. Úkolem je naprogramovat deník pomocí spojového seznamu. Deník má uzel záznam (třída Záznam, který se skládá z prop. Datum a prop. Text. Záznam má konstruktor předávající datum a text do těch properties a prázdný konstruktor pro vytvoření prvního záznamu. Nic víc ve třídě není. Všechno ostatní je pak ve statických metodách v Programu, mimo Main.
Deník umí založit záznam, uložit záznam, smazat záznam a posouvat se od aktuálního k následujícímu nebo předchozímu.
Metoda static Zaznam VytvorNovyZaznam() si od uživatele vezme datum záznamu a text, zpracuje to (TryParse atd) a hotové datum a text ve správných formátech předá do konstruktoru, který vytvoří nový záznam. Ten se pak uloží na konec LinkedListu. Snad jsem to napsal srozumitelně.
#11 KARLOSCZ1979
Teď to dává smysl. VytvorNovyZaznam() je Builder, proto si samostatnou metodu zaslouží.
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
Indexer na List<List<T>> — založil Damian
ArrayList list = new ArrayList(); list.Add("položka"); — založil Montezo
Node-red — založil Borisek
Node.js Developer — založil timone
Nový "Node" v TreeView — založil Trebor
Moderátoři diskuze