Exemplo n.º 1
0
/// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //Display the result

        public void output()
        {
            Bidilist_elements <T> curr_elem = this.start;

            while (curr_elem != null)
            {
                Console.WriteLine("Your current element data: {0}", curr_elem.getData());

                curr_elem = curr_elem.getNext();
            }
        }
Exemplo n.º 2
0
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//// Deleting element from the n-position

        public void remove_elements_at(long pos)
        {
            if ((pos < 0) || (pos > this.amount_of_elements))
            {
                throw new IndexOutOfRangeException();
            }
            //return;

            // Check if we exceeds bounds of array

            else
            {
                Bidilist_elements <T> wp = this.start;
                for (long i = 0; i < pos; i++)
                {
                    wp = wp.getNext();
                }
                if (wp != this.start)
                {
                    wp.getPrev().setNext(wp.getNext());
                }
                if (wp != this.end)
                {
                    wp.getNext().setPrev(wp.getPrev());
                }

                if (wp == this.start)
                {
                    this.start = this.start.getNext();
                }
                if (wp == this.end)
                {
                    this.end = this.end.getPrev();
                }

                this.amount_of_elements--;
            }
        }
Exemplo n.º 3
0
        private T GetDataAt(long i)
        {
            if ((i < 0) || (i > this.amount_of_elements))
            {
                throw new IndexOutOfRangeException();
            }
            //   return default(T);

            else
            {
                Bidilist_elements <T> wp = this.start;
                for (long k = 0; k < i; k++)
                {
                    wp = wp.getNext();
                }
                return(wp.getData());
            }
        }
Exemplo n.º 4
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// This method copy elements which satisfies parameters
        public Bilist <T> return_list_of_clones_by_criteria(T origin)
        {
            Bilist <T> cloned_list = new Bilist <T>();

            Bidilist_elements <T> wp = this.start;

            while (wp != null)
            {
                if (wp.getData().CompareTo(origin) == 0)
                {
                    T clo = (T)wp.getData().Clone();
                    cloned_list.add_element_end(clo);
                }
                wp = wp.getNext();
            }

            return(cloned_list);
        }
Exemplo n.º 5
0
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Deleting element which have same parameters
        public void remove_elements_like(T origin)
        {
            Bidilist_elements <T> wp = this.start;
            long counter             = 0;

            while (wp != null)
            {
                if (wp.getData().CompareTo(origin) == 0)
                {
                    break;
                }
                wp = wp.getNext();
                counter++;
            }

            if (wp != null)  // we have finished finding with result
            {
                this.remove_elements_at(counter);
            }
        }