/// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //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(); } }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //// 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--; } }
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()); } }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// 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); }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// 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); } }