Beispiel #1
0
        /// <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();
            }
        }
Beispiel #2
0
        public static int _count; // количество элементов в списке

        #endregion Fields

        #region Constructors

        /// <summary>
        /// Конструктор по умолчанию
        /// </summary>
        public MyList()
        {
            _head = null;
            _count = 0;
        }
Beispiel #3
0
        public Node _next; //следующий узел

        #endregion Fields

        #region Constructors

        public Node(int inf, Node next)
        {
            this._inf = inf;
            this._next = next;
        }
Beispiel #4
0
        /// <summary>
        /// Добавляет элемент в начало списка
        /// </summary>
        /// <param name="element"></param>
        public void Add(int element)
        {
            Node x = new Node(element, _head);
            _head = x;

            _count++;
        }
Beispiel #5
0
        public Node _next; //следующий узел

        #endregion Fields

        #region Constructors

        public Node(string inf, Node next)
        {
            this._inf = inf;
            this._next = next;
        }
Beispiel #6
0
        /// <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();
        }