public override void InsertPos(int position, Koltuk value)
        {
            if (position < 0 || position + 1 > this.Size)
            {
                throw new IndexOutOfRangeException();
            }
            else if (position == 0 || this.Head == null)
            {
                this.InsertFirst(value);
            }
            else
            {
                Node newNode = new Node()
                {
                    Data = value
                };

                Node currentNode      = this.Head;
                Node lastPreviousNode = this.Head;
                for (int counter = 0; counter < position; counter++)
                {
                    lastPreviousNode = currentNode;
                    currentNode      = currentNode.Next;
                }

                newNode.Next          = currentNode;
                lastPreviousNode.Next = newNode;
                this.Size++;
            }
        }
        public override void InsertFirst(Koltuk value)
        {
            Node newHead = new Node()
            {
                Data = value
            };
            Node tmpHead = this.Head;

            newHead.Next = this.Head;
            this.Head    = newHead;
            this.Size++;
        }
        public override void InsertLast(Koltuk value)
        {
            if (this.Head == null)
            {
                this.InsertFirst(value);
            }
            else
            {
                Node newLast = new Node()
                {
                    Data = value
                };
                Node currentNode = this.Head;
                while (currentNode.Next != null)
                {
                    currentNode = currentNode.Next;
                }

                currentNode.Next = newLast;
                Size++;
            }
        }
 public abstract void InsertPos(int position, Koltuk value);
 public abstract void InsertLast(Koltuk value);