コード例 #1
0
        public Array <T> AddBack(T data)
        {
            if (_close)
            {
                return(this);
            }
            ArrayNode <T> newNode = new ArrayNode <T>();

            newNode.data              = data;
            newNode.previous          = this._items.previous;
            this._items.previous.next = newNode;
            this._items.previous      = newNode;
            newNode.next              = this._items;
            _length++;
            return(this);
        }
コード例 #2
0
 public Array <T> InsertBetween(ArrayNode <T> previous, ArrayNode <T> next, ArrayNode <T> newNode)
 {
     if (_close)
     {
         return(this);
     }
     if (previous == this._items && next != this._items)
     {
         this.AddFront(newNode.data);
     }
     else if (previous != this._items && next == this._items)
     {
         this.AddBack(newNode.data);
     }
     else
     {
         newNode.next     = next;
         newNode.previous = previous;
         previous.next    = newNode;
         next.previous    = newNode;
     }
     return(this);
 }
コード例 #3
0
        public Array <T> Add(T data)
        {
            ArrayNode <T> newNode = new ArrayNode <T>();
            ArrayNode <T> o       = this._items.next;

            newNode.data = data;
            if (o == this._items)
            {
                this.AddFront(data);
            }
            else
            {
                for (; o != this._items;)
                {
                    o = o.next;
                }
                if (o == this._items)
                {
                    this.AddBack(newNode.data);
                }
            }
            return(this);
        }
コード例 #4
0
 public ArrayNode()
 {
     this.next     = null;
     this.previous = null;
     this.data     = default;
 }