public SimpleListItem <T> GetItem(int number) { if ((number < 0) || (number >= this.Count)) { throw new Exception("Going out of range"); } SimpleListItem <T> current = this.first; int i = 0; while (i < number) { current = current.next; i++; } return(current); }
public void Add(T element) { SimpleListItem <T> newItem = new SimpleListItem <T>(element); this.Count++; if (last == null) { this.first = newItem; this.last = newItem; } else { this.last.next = newItem; this.last = newItem; } }
public SimpleListItem <T> GetItem(int number) { if ((number < 0) || (number >= this.Count)) { throw new Exception("ОШибка. Выход за пределы"); } SimpleListItem <T> current = this.first; int i = 0; while (i < number) { current = current.next; i++; } return(current); }
public void Add(T element) //метод добавления элемента в конец списка { SimpleListItem <T> newItem = new SimpleListItem <T>(element); //создание нового контейнера элемента на основе переданных данных this.Count++; /*добавление контейнера к цепочке контейнеров*/ if (LastListElem == null) //добавление первого контейнера в список (только для самого первого элента, добавленного в список) { //список из одного контейнера this.FirstListElem = newItem; this.LastListElem = newItem; } else //добавление следующих контейнеров { this.LastListElem.next = newItem; //присоединение элемента к цепочке this.LastListElem = newItem; //установка присоединенног элемента в качестве полседнего } }
public void add(T element) { var newItem = new SimpleListItem <T>(element); count++; if (last == null) { first = newItem; last = newItem; } else { last.next = newItem; last = newItem; } }
/// <summary> /// Чтение контейнера с заданным номером /// </summary> public SimpleListItem <T> GetItem(int number) { if ((number < 0) || (number >= this.Count)) { //Можно создать собственный класс исключения throw new Exception("Выход за границу индекса"); } SimpleListItem <T> current = this.first; int i = 0; //Пропускаем нужное количество элементов while (i < number) { //Переход к следующему элементу current = current.next; //Увеличение счетчика i++; } return(current); }
/// <summary> /// Добавление элемента /// </summary> /// <param name="element"></param> public void Add(T element) { SimpleListItem <T> newItem = new SimpleListItem <T>(element); this.Count++; //Добавление первого элемента if (last == null) { this.first = newItem; this.last = newItem; } //Добавление следующих элементов else { //Присоединение элемента к цепочке this.last.next = newItem; //Просоединенный элемент считается последним this.last = newItem; } }
public T Pop() { if (this.Count == 0) { return(default(T)); } if (this.Count == 1) { this.first = null; this.last = null; return(this.first.data); } else { SimpleListItem <T> newLast = this.GetItem(this.Count - 2); this.last = newLast; newLast.next = null; this.Count--; return(newLast.next.data); } }
/// <summary> /// Удаление и чтение из стека /// </summary> public T Pop() { //default(T) - значение для типа T по умолчанию T Result = default(T); //Если стек пуст, возвращается значение по умолчанию для типа if (this.Count == 0) { return(Result); } //Если элемент единственный if (this.Count == 1) { //то из него читаются данные Result = this.first.data; //обнуляются указатели начала и конца списка this.first = null; this.last = null; } //В списке более одного элемента else { //Поиск предпоследнего элемента SimpleListItem <T> newLast = this.GetItem(this.Count - 2); //Чтение значения из последнего элемента Result = newLast.next.data; //предпоследний элемент считается последним this.last = newLast; //последний элемент удаляется из списка newLast.next = null; } //Уменьшение количества элементов в списке this.Count--; //Возврат результата return(Result); }
public T Pop() { T cell = default(T); switch (this.Count) { case 0: return(cell); case 1: cell = this.first.data; this.last = null; this.first = null; this.Count--; return(cell); default: SimpleListItem <T> Last2 = this.GetItem(this.Count - 2); cell = Last2.next.data; Last2.next = null; this.Count--; return(cell); } }
public T Pop() { T Result = default(T); if (this.Count == 0) { return(Result); } if (this.Count == 1) { Result = this.first.data; this.first = null; this.last = null; } else { SimpleListItem <T> newLast = this.GetItem(this.Count - 2); Result = newLast.next.data; this.last = newLast; newLast.next = null; } this.Count--; return(Result); }
public T Pop() { T res = default(T); //!! if (this.Count == 0) { return(res); } if (this.Count == 1) { res = this.first.data; this.first = null; this.last = null; } else { SimpleListItem <T> newLast = this.GetItem(this.Count - 2); res = newLast.next.data; this.last = newLast; newLast.next = null; } this.Count--; return(res); }
public T Pop() { T elem = default(T); //значение элемента в случае если список стек пуст if (this.Count == 0) { return(elem); //результат при пустом стеке } if (this.Count == 1) //результат при стеке сосотящем из одного элемента { elem = this.first.data; this.first = null; this.last = null; } else //резульат при стеке, содержащим несколько элементов { SimpleListItem <T> newLast = this.GetItem(this.Count - 2); elem = newLast.next.data; this.last = newLast; //удаление извлеченного элемента newLast.next = null; } this.Count--; return(elem); }