/// <summary> /// Индексация списка /// </summary> public int this[int i] { set { if (_head != null) { if (i == 0) { p = _head; p._inf = value; } else { p = _head; for (int k = 0; k < i; k++) p = p._next; p._inf = value; } } else throw new ArgumentOutOfRangeException(); } get { if (_head != null) { if (i == 0) { p = _head; return p._inf; } else { p = _head; for (int k = 0; k < i; k++) p = p._next; return p._inf; } } else throw new ArgumentOutOfRangeException(); } }
public static int _count; // количество элементов в списке #endregion Fields #region Constructors /// <summary> /// Конструктор по умолчанию /// </summary> public MyList() { _head = null; _count = 0; }
public Node _next; //следующий узел #endregion Fields #region Constructors public Node(int inf, Node next) { this._inf = inf; this._next = next; }
/// <summary> /// Добавляет элемент в начало списка /// </summary> /// <param name="element"></param> public void Add(int element) { Node x = new Node(element, _head); _head = x; _count++; }
public Node _next; //следующий узел #endregion Fields #region Constructors public Node(string inf, Node next) { this._inf = inf; this._next = next; }
/// <summary> /// Удаляет элемент по указанному индексу /// </summary> /// <param name="index"></param> public void Delete(int index) { if (_head != null) { if (index == 0) { _head = _head._next; _count--; } else { Node x = _head; for (int i = 0; i < index - 1; i++) { x = x._next; } if (x._next != null) { x._next = x._next._next; _count--; } } } else throw new IndexOutOfRangeException(); }