public void Insert(T data, int index) { if (index == 0 && _head == null) { Append(data); return; } var topNode = GetNode(index); if (topNode == null) { throw new ArgumentOutOfRangeException(nameof(index), "Index out range"); } if (index == 0) { var itemHead = _head; var node = new SinglyLoopNode <T>(data); node.NextNode = itemHead; _head = node; GetLastNode().NextNode.NextNode = _head; } else { var topNode_ = GetNode(index - 1); var itemNode_ = topNode_.NextNode; topNode_.NextNode = new SinglyLoopNode <T>(data); topNode_.NextNode.NextNode = itemNode_; } _count += 1; }
public void Append(T item) { var node = new SinglyLoopNode <T>(item, _head); if (IsEmpty()) { _head = node; } else { GetLastNode().NextNode = node; } increasingCount(); }
public SinglyLoopLinkedList() { _head = null; _count = 0; }
public SinglyLoopNode(T data, SinglyLoopNode <T> nextNode) { Data = data; NextNode = nextNode; }