/// <summary> /// Odstranjujemo s konca /// </summary> /// <returns></returns> public T OdstraniSKonca() { Vozel <T> trenutni = prvi_vozel;//zacnemo na zacetku Vozel <T> trenutniPrejsnji = null; if (trenutni == null) { //ce je seznam prazen //return default(T); throw new Exception(); } if (trenutni.Naslednji == null) { //ce je samo en na seznamu potem moramo seznam izprazniti prvi_vozel = null; zadnji_podatek = null; return(default(T)); } while (true) { if (trenutni.Naslednji == null) { //ce smo prišli do konca trenutniPrejsnji.Naslednji = null; dolzina--; return(trenutni.Podatek); } trenutniPrejsnji = trenutni; //skocimo na naslednji element trenutni = trenutni.Naslednji; ////skocimo na naslednji element } }
/// <summary> /// Metoda za dodat vozel na zacetek veriznega seznama /// </summary> /// <param name="podatek"></param> public void DodajNaZacetek(T podatek) { Vozel <T> novVozel = new Vozel <T>(podatek); //ustvarimo nov vozel novVozel.Naslednji = prvi_vozel; prvi_vozel = novVozel; dolzina++; }
public bool MoveNext() { //to se klice, ko foreach rabi naslednji podatek if (odZacetka) { //ce je bil klican reset (pomeni, da zacne iterirati od zacetka) odZacetka = false; //damo na false, da program normalno nadaljuje iteriranje _trenutni = _zbirka.prvi_vozel; //ce je bilo resetirano potem zacnemo s prvim elementom } else { _trenutni = _trenutni.Naslednji; } return(_trenutni != null);//vrnemo true, ce smo se uspesno premaknili in false, ce smo na koncu seznama }
/// <summary> /// Odstranimo vozel z zacetka veriznega seznama. /// </summary> /// <returns></returns> public T OdstraniZZacetka() { if (prvi_vozel == null) { return(default(T));//ce je seznam prazen vrnemo prazno } if (prvi_vozel.Naslednji == null) {//ce bo seznam po tem prazen je tudi zadnji podatek prazen zadnji_podatek = null; } T podatekPrvega = prvi_vozel.Podatek; prvi_vozel = prvi_vozel.Naslednji; dolzina--; return(podatekPrvega); }
public override string ToString() { string niz = ""; Vozel <T> trenutni = prvi_vozel; while (trenutni.Naslednji != null) { niz += trenutni.Podatek.ToString(); if (trenutni.Naslednji != null) { niz += ", "; } trenutni = trenutni.Naslednji; } return(niz + "]"); }
/// <summary> /// Vozel dodamo na konec /// </summary> /// <param name="podatek"></param> public void DodajNaKonec(T podatek) { Vozel <T> novVozel = new Vozel <T>(podatek); if (zadnji_podatek == null) { prvi_vozel = zadnji_podatek; zadnji_podatek = novVozel; prvi_vozel = novVozel; } else { zadnji_podatek.Naslednji = novVozel; zadnji_podatek = novVozel; } dolzina++; }
public T VrednostNaMestu(int n) { if (n < 0 || n > dolzina) { //return default(T); throw new Exception(); } Vozel <T> trenutni = prvi_vozel; int i = 0; while (true) { if (n == i) { return(trenutni.Podatek); } trenutni = trenutni.Naslednji; i++; } }
/// <summary> /// Konstruktor za vozel /// </summary> /// <param name="vrednost"></param> public Vozel(T vrednost) { this.podatek = vrednost; this.naslednji = null; }
/// <summary> /// Konstruktor brez spremenljivk, kjer sza zacetek in konec nastavljena na null /// </summary> public Verizni_seznam() { prvi_vozel = null; zadnji_podatek = null; }
object IEnumerator.Current => Current;//nanasajoc na zgornjo lastnost public void Dispose() { _trenutni = null; _zbirka = null; }