예제 #1
0
 public myListItem <T> GetItem(int number)
 {
     if (number > count)
     {
         return(null);
     }
     else
     {
         if (number == 0)
         {
             return(first);
         }
         myListItem <T> buf = null;
         for (int i = 0; i <= number; i++)
         {
             if (i == 0)
             {
                 buf = first;
             }
             else
             {
                 buf = buf.next;
             }
         }
         return(buf);
     }
 }
예제 #2
0
        public void Swap(int a, int b)
        {
            myListItem <T> temp1 = GetItem(a);
            myListItem <T> temp2 = GetItem(b);
            T temp = temp1.data;

            temp1.data = temp2.data;
            temp2.data = temp;
        }
예제 #3
0
        public new IEnumerator <T> GetEnumerator()
        {
            myListItem <T> current = first;

            //Перебор элементов
            while (current != null)
            {
                //Возврат текущего значения
                yield return(current.data);

                //Переход к следующему элементу
                current = current.next;
            }
        }
예제 #4
0
        // Добавление
        public void Add(T element)
        {
            myListItem <T> newitem = new myListItem <T>(element);

            if (count == 0)
            {
                first = newitem;
                last  = newitem;
            }
            else
            {
                last.next   = newitem;
                newitem.pre = last;

                last = newitem;
            }
            count++;
        }
예제 #5
0
        public T Get(int number)
        {
            myListItem <T> buf = GetItem(number);

            return(buf.data);
        }