/// <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++;
            }
        }
示例#8
0
 /// <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;
 }
示例#10
0
            object IEnumerator.Current => Current;//nanasajoc na zgornjo lastnost

            public void Dispose()
            {
                _trenutni = null;
                _zbirka   = null;
            }