[ bciric @ 03.06.2008. 19:56 ] @
Imam ovakav problem sa klasom:

Pokusavam da napravim red cekanja sa LIFO baferom koriscenjem dvostruko ulancane liste

Code:
class BufferNode
    {
        public Package info;
        public BufferNode next, prev;


        public BufferNode(Package el)
        {
            info = el;
            next = null;
            prev = null;
        }
    }


    class Buffer
    {
        BufferNode head = new BufferNode();
        BufferNode tail = new BufferNode();
        //double intime, outtime, timeinbuffer, numpacket;

        public Buffer()
        {
            head = tail = null;
        }
        /// <summary>
        /// Vreme ulaska u bafer
        /// </summary>
        /// <param name="it">vrednost vremena</param>
        public void SetInTime(double it)
        {
            
        }


        /// <summary>
        /// Proverava da li je bafer prazan i vraca bool vrednost
        /// </summary>
        /// <returns></returns>
        public bool isEmpty()
        {
            return head == null;
        }
        /// <summary>
        /// Nalazi i vraca duzinu bafera
        /// </summary>
        /// <returns>Duzina bafera</returns>
        public int BufferLength()
        {
            int length = 0;
            BufferNode tmp = new BufferNode();
            
            for (tmp = head; tmp != null; tmp = tmp.next)
            {
                length++;
            }
            return length;
        }
        /// <summary>
        /// Dodavanje novog paketa u bafer
        /// </summary>
        /// <param name="x">Cvor bafera koji se dodaje</param>
        public void AddToBuffer(BufferNode x)
        {
            if (!isEmpty())
            {

                /*x.prev = tail;
                x.next = null;
                tail.next.prev = x;
                tail.next = x;
                */
                tail.next = x;
                x.prev = tail;
                x.next = null;
                tail = x;


            }
            else
                head = tail = x;
        }

        /// <summary>
        /// Brisanje Paketa sa repa bafera
        /// </summary>
        public void DeleteFromTail()
        {
            if (!isEmpty())
            {
                if (head == tail)
                    head = tail = null;
                else
                {
                    tail = tail.prev;
                    tail.next = null;
                }
            }
            else
                return;
        }
        /// <summary>
        /// Uzima elemenat koji treba proslediti programu
        /// </summary>
        /// <returns></returns>
        public BufferNode TakeFromBuffer()
        {
            BufferNode x=new BufferNode();
            x = tail;
            DeleteFromTail();
            return x;


        }
    }




Da li moze to da radi bez onog default konstruktora BufferNode() ?

Ja kad pokusam da kreiram instancu te kalse javlja mi gresku "Error 5 No overload for method 'BufferNode' takes '0' arguments"


Koja je fora? I koja je razlika ako ubacim i onaj konstruktor?
[ bags @ 03.06.2008. 21:51 ] @
Pa u klasi bufferNode imas samo konstruktor koji kao argument prima Package e1.Koliko vidim ti ga ne koristis ,pa ga mozes i izbrisati.Ili kad pozivas konstruktor da predas taj package.

PS.
Cool slika u profilu. :)
[ bciric @ 03.06.2008. 21:58 ] @
ma ok je to koristim dalje u programu,

program pukne kod :
BufferNode head = new BufferNode();


trazi i default konstruktor sto je bas bezveze
[ sallle @ 04.06.2008. 01:41 ] @
ukoliko ne definises nikakav konstruktor u kodu, postojace default konstruktor bez parametara.
Cim definises neki konstruktor, gubi se podrazumevani konstruktor bez parametara (moras rucno da ga definises)
[ bciric @ 04.06.2008. 11:26 ] @
e to mi je trebalo, hvala ti